1 创建SparkContext对象,然后SparkContext会向Clutser Manager(集群资源管理器),例如Yarn、Standalone、Mesos等申请资源
2 资源管理器在worker节点上创建executor并分配资源(CPU、内存等),后期excutor会定时向资源管理器发送心跳信息
3 SparkContext启动DAGScheduler,将提交的作业(job)转换成若干Stage,各Stage构成DAG(Directed Acyclic Graph有向无环图),各个Stage包含若干相task,这些task的集合被称为TaskSet
4 TaskSet发送给TaskSet Scheduler,TaskSet Scheduler将Task发送给对应的Executor,同时SparkContext将应用程序代码发送到Executor,从而启动任务的执行
5 Executor执行Task,完成后释放相应的资源。
YARN模式:

图片来源:http://blog.csdn.net/yirenboy/article/details/47441465
Standalone模式:

图片来源:http://blog.csdn.net/book_mmicky/article/details/25714419,
本文深入解析了Spark的运行流程,从SparkContext的创建到资源申请,再到DAGScheduler的工作原理,以及TaskSet的调度和执行过程。同时,还介绍了YARN和Standalone两种部署模式下Spark的具体运行机制。

1970

被折叠的 条评论
为什么被折叠?



