一、SparkSubmit(Client)总流程图
二、流程分析
按照图1流程,整个提交过程可以分为9个步骤。
1、yarnClient提交AM的启动命令给RM。
2、RM找到空闲NM,启动用户自定义Spark进程。
3、初始化SparkContext时,注册AM。
4、创建YarnAlocator对象,并向RM获取Container资源。
5、YarnAlocator对象中laucherPool对象启动线程,并通过nmClient启动新的容器,并创建ExectuorBackend。
6、ExecutorBackend向DriverEndpoint注册。
7、DriverEndpoint回复true。
8、ExectuorBackend向DriverEndpoint提交LauchedExector消息。
9、DriverEndpoint将Task任务序列化后并回复LauchTask消息。
三、代码解析
待续