spark standalone架构设计

spark standalone架构设计

ID:13008051

大小:372.57 KB

页数:16页

时间:2018-07-20

spark standalone架构设计_第1页
spark standalone架构设计_第2页
spark standalone架构设计_第3页
spark standalone架构设计_第4页
spark standalone架构设计_第5页
资源描述:

《spark standalone架构设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SparkStandalone架构设计16ApacheSpark是一个开源的通用集群计算系统,它提供了High-level编程API,支持Scala、Java和Python三种编程语言。Spark内核使用Scala语言编写,通过基于Scala的函数式编程特性,在不同的计算层面进行抽象,代码设计非常优秀。RDD抽象RDD(ResilientDistributedDatasets),弹性分布式数据集,它是对分布式数据集的一种内存抽象,通过受限的共享内存方式来提供容错性,同时这种内存模型使得计算比传统的数据流模型要高效。RDD具有5个重要的特性,如下图所示:上图展示了2个RDD进行JOIN操作,

2、体现了RDD所具备的5个主要特性,如下所示:·●一组分区·●计算每一个数据分片的函数·●RDD上的一组依赖16·●可选,对于键值对RDD,有一个Partitioner(通常是HashPartitioner)·●可选,一组Preferredlocation信息(例如,HDFS文件的Block所在location信息)有了上述特性,能够非常好地通过RDD来表达分布式数据集,并作为构建DAG图的基础:首先抽象一次分布式计算任务的逻辑表示,最终将任务在实际的物理计算环境中进行处理执行。计算抽象在描述Spark中的计算抽象,我们首先需要了解如下几个概念:·●Application用户编写的Spark

3、程序,完成一个计算任务的处理。它是由一个Driver程序和一组运行于Spark集群上的Executor组成。·●Job用户程序中,每次调用Action时,逻辑上会生成一个Job,一个Job包含了多个Stage。·●StageStage包括两类:ShuffleMapStage和ResultStage,如果用户程序中调用了需要进行Shuffle计算的Operator,如groupByKey等,就会以Shuffle为边界分成ShuffleMapStage和ResultStage。·●TaskSet基于Stage可以直接映射为TaskSet,一个TaskSet封装了一次需要运算的、具有相同处理逻辑

4、的Task,这些Task可以并行计算,粗粒度的调度是以TaskSet为单位的。16·●TaskTask是在物理节点上运行的基本单位,Task包含两类:ShuffleMapTask和ResultTask,分别对应于Stage中ShuffleMapStage和ResultStage中的一个执行基本单元。下面,我们看一下,上面这些基本概念之间的关系,如下图所示:上图,为了简单,每个Job假设都很简单,并且只需要进行一次Shuffle处理,所以都对应2个Stage。实际应用中,一个Job可能包含若干个Stage,或者是一个相对复杂的StageDAG。在Standalone模式下,默认使用的是FIF

5、O这种简单的调度策略,在进行调度的过程中,大概流程如下图所示:16从用户提交Spark程序,最终生成TaskSet,而在调度时,通过TaskSetManager来管理一个TaskSet(包含一组可在物理节点上执行的Task),这里面TaskSet必须要按照顺序执行才能保证计算结果的正确性,因为TaskSet之间是有序依赖的(上溯到ShuffleMapStage和ResultStage),只有一个TaskSet中的所有Task都运行完成后,才能调度下一个TaskSet中的Task去执行。集群模式Spark集群在设计的时候,并没有在资源管理的设计上对外封闭,而是充分考虑了未来对接一些更强大的资

6、源管理系统,如YARN、Mesos等,所以Spark架构设计将资源管理单独抽象出一层,通过这种抽象能够构建一种适合企业当前技术栈的插件式资源管理模块,从而为不同的计算场景提供不同的资源分配与调度策略。Spark集群模式架构,如下图所示:16上图中,Spark集群ClusterManager目前支持如下三种模式:·●Standalone模式Standalone模式是Spark内部默认实现的一种集群管理模式,这种模式是通过集群中的Master来统一管理资源,而与Master进行资源请求协商的是Driver内部的StandaloneSchedulerBackend(实际上是其内部的Standal

7、oneAppClient真正与Master通信),后面会详细说明。·●YARN模式YARN模式下,可以将资源的管理统一交给YARN集群的ResourceManager去管理,选择这种模式,可以更大限度的适应企业内部已有的技术栈,如果企业内部已经在使用Hadoop技术构建大数据处理平台。16·●Mesos模式随着ApacheMesos的不断成熟,一些企业已经在尝试使用Mesos构建数据中心的操作系统(DCOS),Spark

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。