1.大纲
spark应用构成:Driver(资源申请、job调度) + Executors(Task具体执行)
Yarn上应用运行构成:ApplicationMaster(资源申请、job调度) + Containers(Task具体执行)
Driver有两种运行模式,导致结构不太一样
2.client的情形
Driver运行在提交job的机器上(执行spark-submit的机器)
Driver运行在提交jar的机器上,任务运行在yarn上;Driver的功能是:申请资源运行AM,Job调度
AM负责SparkTask运行所需要的资源的申请
重要的步骤::
Driver --> 向RM申请资源 --> 启动AM --> 向RM申请TAsk执行的资源
|
| Job调度
|
Executors中执行Task任务
3.cluster的情形
注意点:Driver运行在nodemanager中。
然后,才会出现向下的三条虚线
Driver和Application合并
AM <====> Driver:这个地方其实就是AM,在上图可以看见,Application Master中包含了spark的上下文,yarnCluster的调度。
流程基本和MR类似