4,spark源码分析-executor启动

启动的入口:
org.apache.spark.executor.CoarseGrainedExecutorBackend

初始化

初始化各种配置和rpc的连接,从driver拉取各种配置信息。
在这里插入图片描述
driver端的回复
在这里插入图片描述

在这里插入图片描述
通过rpcEnc设置endpoint的时候,会自动化初始化CoarseGrainedExecutorBackend,调用onStart()方法,具体原理参考(https://blog.csdn.net/u013560925/article/details/80274135)
把当前的executor注册到applicationMaster.
在这里插入图片描述
在这里插入图片描述

Executor

在接收到ApplicationMaster的回复之后,就实例化一个executor.

在这里插入图片描述
这个时候driver和executor就完全建立起连接了,在drvier端通过DAGScheduler发送LaunchTask请求的时候,executor端就可以接收处理了。
在这里插入图片描述
Task具体运行的实例是TaskRunner(继承了Runnable接口), Executor启动一个独立的线程池。
在这里插入图片描述
TaskRunner就是具体执行Task的包装Runner, 里面包括了一些监控指标上报,一些环境变量的初始化,状态机的转换和上报,结果数据的序列化和上报。
在这里插入图片描述
在这里插入图片描述

这里说明一下:shuffleMapTask和ResultTask的不同。
shuffleMapTask会把结果数据通过SorShufflerManager写到内存,堆外内存,磁盘中。而ResultTask会直接把序列化的数据直接传给driver。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值