(1) 构建Spark Application
的运行环境,启动SparkContext
。
(2) SparkContext
向资源管理器(可以是Standalone
、Mesos
、Yarn
)申请运行Executor
资源。
(3) 资源管理器分配Executor
资源并启动ExecutorBackend
,Executor
运行情况将随着心跳发送到资源管理器上。心跳是周期性地发送给资源管理器的信息,以表示Executor
仍然活着。
(4) SparkContext
通过DAGScheduler
根据RDD
依赖关系构建DAG
图,再将DAG
图分解成Stage
,并把TaskSet
发送给TaskScheduler
。Executor
向SparkContext
申请Task
,TaskScheduler
将Task
发放给Executor
运行。
(5) Task
在Executor
上运行,运行完释放资源。
网友评论