spark部署模式解析

单机上可以本地模式运行
单机上伪分布式模式运行
集群上standalone模式,spark on yarn模式,spark on mesos模式,这里主要介绍集群前两种。

standalone模式

类似于单机伪分布式模式,如果是使用spark-shell交互运行spark任务或者使用run-example运行官方示例,driver是运行在master节点上的。如果使用spark-submit进行任务提交或者在eclipse。idea开发时使用new sparkContext(“spark://master:7077”,”appName”)运行spark任务,driver运行在本地客户端。
spark部署模式解析_第1张图片
spark application运行主要流程:
(1)客户端启动,初始化相关环境变量,application代码提交。
(2)反射调用org.apache.spark.deploy.yarn.Client,创建DriverActor(其他方式driver可能运行在worker节点)
……

1.Master
master是spark集群的核心,负责各种信息,比如Driver,worker,application的注册,还负责executor的启动,worker心跳的管理。
2.Worker
worker相当于yarn中的NodeManager,负责当前WorkerNode上资源汇报,监督executor,worker和master之间心跳保持存活性连接。
3.CoarseGrainedExecutorBackend
CoarseGrainedExecutorBackend是一个进程,内部负责具体task的执行,和worker和driver通信。
4.DAGScheduler
DAGScheduler是面向stage层的调度器,负责接收用户提交的job,根据RDD的依赖关系划分不同的stage,并且每一个stage内封装taskset,根据当前缓存情况和数据就近的原则,将TaskSet提交给TaskScheduler。
5.TaskScheduler
TaskScheduler是一个任务调度接口,功能是接收DAGScheduler提交过来的TaskSets,提交到集群执行。如果某个Task执行失败,根据重试条件重新运行,将执行结果返回给DAGScheduler。类似于yarn中的任务管理,TaskScheduler实现了任务推测执行机制,TaskScheduler为每个TaskSets维护了一个TaskSets维护了一个TaskSetManager用于追踪错误信息,结果和本地信息。
6.shuffle分析
……

spark on yarn模式

spark on yarn模式是最优前景的一种模式,分为yarn-cluster和yarn-client

yarn-cluster模型:
spark部署模式解析_第2张图片

(1)client使用spark-submit向yarn提交spark application。
(2)ResourceManager接受到请求后,为application分配一个container,用来运行ApplicationMaster(其中包含sparkcontext初始化)
(3)ApplicationMaster向ResourceManager申请资源运行executor
(4)ResourceManager分配container给ApplicationMaster,ApplicationMaster和相关NodeManager通信,在获得的container上启动CoarseGrainedExcecutorBacknd,CoarseGrainedExcecutorBacknd在启动后向ApplicationMaster中sparkcontext注册并申请task。
(5)ApplicationMaster中的sparkcontext分配task给CoarseGrainedExcecutorBacknd执行,CoarseGrainedExcecutorBacknd执行task并向sparkcontext汇报运行情况。

yarn-client模型:
spark部署模式解析_第3张图片

yarn-client和yarn-cluster大体相同,
yarn-client主要是客户端向yarn提交sparkapplication后,driver在客户端本地启动,yarn-cluster中是ApplicationMaster启动driver。另外,yarn-client中CoarseGrainedExcecutorBacknd获得container资源,启动后向客户端本地中driver中的sparkcontext注册并申请task。

spark on mesos模式

参考:《大数据Spark企业级实战》《Hadoop权威指南》

你可能感兴趣的:(spark部署模式解析)