spark整个流程
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210308183830551.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTQyNTA1NA==,size_16,color_FFFFFF,t_70)
第6步详解解析:
6.1的LauncherPool为线程池,它会启动一个线程类NMclient用来和NodeManager通信用,然后会启动NodeManager中的一个进程ExecutorBackend,然后启动两个通信模块(也就是RPC终端,用来通信)
通信注册完后,第9步建立Executor计算对象(线程),也就是跑RDD的承担者
注:7,8,9,10步在通讯架构中详解
任务切分
第十步:任务切分解析:如下图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210308182518399.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTQyNTA1NA==,size_16,color_FFFFFF,t_70)
所以当Exeuctor启动完成后,就开始跑代码,直到遇到第一个行动算子,这就代表第一个任务开始划分了。
划分信息如