Spark:分布式并行计算框架

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.
3.
并且,由之前需要维护不同的集群,到现在只需要维护一个Spark集群。
Spark生态圈即BDAS(伯克利数据分析栈)包含了Spark Core、Spark SQL、 Spark Streaming、MLLib和GraphX等组件,这些组件分别处理Spark Core提供 内存计算框架、SparkStreaming的实时处理应用、Spark SQL的即席查询、MLlib 或MLbase的机器学习和GraphX的图处理,它们都是由AMP实验室提供,能够无 缝的集成并提供一站式解决平台。
Spark特点
Spark随处运行 Spark具有很强的适应性,能够读取HDFS、Cassandra、HBase、S3和Techyon为持 久层读写原生数据,能够以Mesos、YARN和自身携带的Standalone作为资源管理器 调度job,来完成Spark应用程序的计算。
www.longzhu.com
SparkStreaming 对应 对应 对应
www.longzhu.com
Spark运行模式
Spark目前主要有4种运行模式 1. 2. Local[N]模式,适用N个线程,用于调试。 Local cluster 伪分布式模式,可以配置worker数量,每个worker管理的cpu和内 存,用于调试 3. Standalone Cluster集群模式 ,Spark://hostname:port,需要部署spark到相关 节点,url为master地址和端口 4. 5. YARN Cluster 模式,运行在资源管理器yarn集群中 Mesos Cluster模式,运行在资源管理器Mesos集群中
www.longzhu.com
Spark的适用场景
Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需 要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密 集度较大的场合,受益就相对较小 由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的 存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合 数据量不是特别大,但是要求实时统计分析需求
4
DAGScheduler是基于任务模块的高层调度模块,为每个Spark作业(job)计算具有依赖 关系的多个调度模块(通常根据shuffle来划分),然后为每个阶段构建出一组具体的任务 (Task),即任务集TaskSet交给TaskScheduler来具体执行
TaskScheduler则负责具体启动任务、监控和汇报任务运行情况
www.longzhu.com
Spark运行模式
www.longzhu.com
Spark运行模式
www.longzhu.com
Spark运行模式
1 2 3 Client 提交driver的终端,可以是集群中的任何一个node,也可以是spark集群外的机 器,甚至是调试程序的Ide Driver就是用户提交的程序,这里边定义了SparkContext的实例 SparkContext初始化过程中Spark会分别创建DAGScheduler作业调度和 TaskScheduler任务调度两级调度模块
www.longzhu.com
Spark特点
Spark是开放的 1. 2. Spark提供了Java,Scala, Python, R,SQL的API和丰富的内置库。 同时,Spark和其它的大数据工具整合的很好。尤其,Spark能够运行在Hadoop 集群上面,能够访问Hadoop数据。
www.longzhu.com
www.longzhu.com
Spark高可用
Spark 采用了Master/Slaves架构的集群模式,因此,存在着Master单点故障。
基于文件系统的单点恢复
此模式下虽然可以恢复,但需要人工参与。因此,适合对高可用要求不高的场景,如果离线 分析。 当Master挂掉后,手工启动Master仍然能继续执行原来的任务。当然,也可以继续提交任 务 export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM Dspark.deploy.recoveryDirectory=/opt/spark/recovery“ 基于ZooKeeper的HA Spark Standalone使用多个Master节点,通过ZooKeeper推举一个为Active(激活)状态, 其它的均为Standby(备用)状态。 当Active Master节点挂掉后,ZooKeeper会从所有的Standby Mater中推举会一个新的 Activer Master。新的Active Master恢复到旧有的Active Master的状态,然后恢复调度。 从Activer Master失去作用,到新Active Master恢复调度可能需要1-2分钟。 export SPARK_DAEMON_JAVA_OPTS=“-Dspark.deploy.recoveryMode=ZOOKEEPER Dspark.deploy.zookeeper.url=10-154:2181, 10-153:2181, 10-152:2181, 10-154:2181 Dspark.deploy.zookeeper.dir=/spark"
www.longzhu.com
Spark是什么
Spark是一个基于内存计算的开源的分布式集群并行计算系统 Spark非常小巧玲珑,由加州伯克利大学AMP实验室的Matei为主的小团队所开发。 使用的语言是Scala,运行在JVM上,项目的core部分的代码只有63个Scala文件, 非常短小精悍。 是继Hadoop之后的新一代大数据分布式处理框架 目前Spark在全球已有广泛的应用,其中包括 Alibaba 、 Baidu 、 Tencent Youku 、IBM、Intel、雅虎等。
www.longzhu.com
Spark发展历程
Spark诞生于2009年,那时候它是,加州大学伯克利分校RAD实验室的一个研究项目,后来到了 AMP实验室。 Spark最初是基于Hadoop Mapreduce的,后来发现Mapreduce在迭代式计算和交互式上是低效 的。因此Spark进行了改进,引入了内存存储和高容错机制。 关于Spark的研究论文在学术会议上发表,并且在它被创建的2009年不久之后,对于一些特定的工作, Spark比Mapreduce快10-20倍。 2010年3月份Spark开源。 2011年,AMP实验室开始在Spark上面开发高级组件,像Shark(Hive on Spark),Spark Streaming。 2013年转移到了Apache下,现在已经是顶级项目了。 2014年5月份Spark1.0发布。 目前:发布最新版Spark1.6.1 Spark在7年内迅速发展,较于其他大数据平台或框架,Spark代码库最为活跃
www.longzhu.com
Spark生态系统
Spark生态系统学习、维护成本很低。要实现一个相对完整的端到端的解决方案,以 前需要部署多个专有系统,现在只需要一个Spark Spark Core SparkSQL SparkGraphX SparkMLLib 对应 对应 Hadoop MR Hive Strom Giraph Mahout
Spark生态系统
www.longzhu.com
Spark生态系统
Spark生态圈也称为BDAS(伯克利数据分析栈),是伯克利APMLab实验室打造的, 力图在算法(Algorithms)、机器(Machines)、人(People)之间通过大规模 集成来展现大数据应用的一个平台。伯克利AMPLab运用大数据、云计算、通信等 各种资源以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为有用的 信息,以供人们更好的理解世界。该生态圈已经涉及到机器学习、数据挖掘、数据 库、信息检索、自然语言处理和语音识别等多个领域。 Spark生态圈以Spark Core为核心,从HDFS、Amazon S3和HBase等持久层读取 数据,以MESS、YARN和自身携带的Standalone为资源管理器调度Job完成Spark 应用程序的计算。 这些应用程序可以来自于不同的组件,如Spark Shell/Spark Submit的批处理、Spark Streaming的实时处理应用、Spark SQL的即席查询、 BlinkDB的权衡查询、MLlib/MLbase的机器学习、GraphX的图处理和SparkR的数 学计算等等。
www.longzhu.com
Spark特点
Spark是易用的 Spark不仅支持Scala编写应用程序,而且支持Java和Python, Python, R等语言进行编 写。
www.longzhu.com
Spark特点
Spark是通用的 1. Spark的设计,容纳了之前很多独立的,分布式系统所拥有的功能。独立的分布式 系统包括:批处理,迭代式计算,交互查询和流处理等。
www.longzhu.com
Spark核心概念:RDD
什么是RDD 1. Spark的核心概念是RDD (resilient distributed dataset),是一个只读的,可分区 的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用。 2. 一种有容错机制的特殊集合,可以分布在集群的节点上,以函数式编程操作集合的 方式,进行各种并行操作 3. 分布式的,可以分布在多台机器上,进行计算 4. 弹性的,计算过程中内存不够时它会和磁盘进行数据交换
Hale Waihona Puke Baidu
www.longzhu.com
Spark发展历程
www.longzhu.com
Spark能干什么
1. 大规模数据处理。例如用户行为数据,电子商务平台用户的操作行为记录,放进 Spark系统,然后对数据进行多维度的分析,发现潜在客户,个性化推荐商品 2. 流数据处理。 3. 图计算。社交网络 4. 机器学习。协同过滤
www.longzhu.com
Spark特点
Spark是快速的 1. 2. 很多任务能够秒级完成,对于一些特定的工作,Spark比Mapreduce快10-20倍。 Spark扩充了流行的Mapreduce计算模型,使Spark更高效地支持更多类型的计算, 包括交互式查询,和流处理。 3. 4. 速度快的另一个主要原因就是,能够在内存中计算。 官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10 倍以上,如果数据从内存中读取,速度可以高达100多倍。
5
6
7 8
DAGScheduler和TaskScheduler都是不同阶段的调度者,具体执行任务的是Exector
Master接收Client提交的作业,管理Worker,并命令Worker启动Driver和Executor Worker负责管理本节点的资源,定期向Master汇报心跳,接收Master的命令,比如启 动Driver和Executor
Spark:分布式并行计算框架
www.longzhu.com
内容简介
Spark是什么 Spark的发展历程 Spark能干什么 Spark的适用场景
Spark的特点
Spark生态系统 Spark运行模式 Spark高可用
Spark核心概念:RDD
Spark集群搭建 Spark与Hadoop整合 Spark应用部署模式
www.longzhu.com
Spark核心概念:RDD
RDD创建操作 (creation operation) 1. 集合创建,由内部集合生成,Spark中提供了parallelize和makeRDD两类函数来实 现从集合生成RDD。var rdd=sc.makeRDD(1 to 10,3) 2. 存储创建,从文件存储(文本文件,hdfs),数据库(hbase,mongodb),消息队列 (kafka)等获得数据并转换成RDD
相关文档
最新文档