美文网首页
spark 任务运行流程

spark 任务运行流程

作者: felix_feng | 来源:发表于2016-09-19 16:02 被阅读200次

    正常启动Spark集群时往往使用start-all.sh ,此脚本中通过调用start-master.sh和start-slaves.sh启动mater及workers节点。

    spark-submit提交Spark应用程序后,其执行流程如下:

    1 在worker node创建Driver进程,Driver创建SparkContext对象,然后SparkContext会向Clutser Manager(集群资源管理器),例如Yarn、Standalone、Mesos等申请资源。

    Driver进程,也是作业的主进程,负责作业的解析、生成Stage并调度Task到Executor上。包括DAGScheduler,TaskScheduler。

    2 在worker node上创建executor并分配资源(CPU、内存等),后期excutor会定时向资源管理器发送心跳信息。

    3 SparkContext启动DAGScheduler,将提交的作业(job)转换成若干Stage,各Stage构成DAG(Directed Acyclic Graph有向无环图),各个Stage包含若干相task,这些task的集合被称为TaskSet。当RDDG触发相应的action操作(如collect)后,DAGScheduler会根据程序中的transformation类型构造相应的DAG并生成相应的stage,所有窄依赖构成一个stage,而单个宽依赖会生成相应的stage。

    4 TaskSet发送给TaskSet Scheduler,TaskSet Scheduler将Task发送给对应的Executor,同时SparkContext将应用程序代码发送到Executor,从而启动任务的执行

    5 Executor执行Task,完成后释放相应的资源。

    相关文章

      网友评论

          本文标题:spark 任务运行流程

          本文链接:https://www.haomeiwen.com/subject/gkupettx.html