所以Spark Application运行在YARN上时,采用不同DeployMode时架构不
一样,企业实际生 产环境还是以cluster模式为主,client模式用于开发测
试,两者的区别面试中常问。
1)、Driver在任务提交的本地机器上运行,Driver启动后会和ResourceManager通讯申
请启动 ApplicationMaster;
2)、随后ResourceManager分配Container,在合适的NodeManager上启动
ApplicationMaster, 此时的ApplicationMaster的功能相当于一个ExecutorLaucher,只
负责向ResourceManager申 请Executor内存; 3)、ResourceManager接到
ApplicationMaster的资源申请后会分配Container,然后 ApplicationMaster在资源分配
指定的NodeManager上启动Executor进程;
4)、Executor进程启动后会向Driver反向注册,Executor全部注册完成后,Driver开始
执行main 函数;
5)、之后执行到Action算子时,触发一个Job,并根据宽依赖开始划分Stage,每个
Stage生成 对应的TaskSet,之后将Task分发到各个Executor上执行。
1)、任务提交后会和ResourceManager通讯申请启动ApplicationMaster;
2)、随后ResourceManager分配Container,在合适的NodeManager上启动
ApplicationMaster, 此时的ApplicationMaster就是Driver;
3)、Driver启动后向ResourceManager申请Executor内存,ResourceManager接到
ApplicationMaster的资源申请后会分配Container,然后在合适的NodeManager上启动
Executor进程;
4)、Executor进程启动后会向Driver反向注册;
5)、Executor全部注册完成后Driver开始执行main函数,之后执行到Action算子时,触
发一个 job,并根据宽依赖开始划分stage,每个stage生成对应的taskSet,之后将task
分发到各个 Executor上执行;