Spark面试题

Spark---Driver进程

本地运行时,主代码类进程就是driver进程

集群运行时,client发送请求给Master,Master在随机worker节点上(满足资源)启动driver。

driver挂掉------>Executors挂掉------>application就挂掉了

客户端driver的启动

根据提交命令,启动Driver的分别对应了不同的mainclass.

如果是client模式,那么在本地直接执行我们的主代码类,该进程就是Driver进程。

如果是standalone cluster模式,客户端会向maste发送http请求,master稍后会在worker上启动单独的Driver进程。


Master为Driver调度资源,通知Worker启动Driver

资源调度的实现在schedule(),实现相对于Executor的资源分配要简单的多,因为Driver只有一个进程,只在其中一个worker上启动即可。实现如下:

1、首先对所有worker的shuffle随机排列,然后从第一个worker开始轮询,如果worker上的内存和cores能够满足Driver的需求,那么就在该worker上启动Driver。

2、在该worker上启动Driver,实现在launchDriver()方法,在launchDriver()中,就是向worker发送消息LaunchDriver


Worker开始启动Driver进程

Worker在接收到Master发的LaunchDriver消息后,便会开始启动Driver进程,实现如下:

1、构造DriverRunner,由DriverRunner负责运行Driver命令的启动

2、DriverRunner会新建一个线程,由这个线程去负责启动和监控Driver进程

3、从本地拷贝依赖的任务jar(我们自己的jar包)到Driver的工作目录

4、如果设置了Driver进程的监控,--supervise参数那么在Driver进程以非0退出码结束时(一般都是异常结束),Worker会重新启动Driver进程。

注意:Driver异常退出了之后所有的Executors也跟着被kill掉了,整个application也就宕掉了。重新启动Driver进程会重新启动一个新的application

参考:Spark源码分析------Driver进程启动源码实现分析

相关推荐
计算机编程指导师1 分钟前
【大数据毕设】Hadoop+Spark台北市住宅价格数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·住宅价格
nvd118 小时前
Flink 批处理驱动的湖仓 AI 财务研报流水线:从双流广播汇聚到 Agent 智能决策与原生 Iceberg 落盘全景实战
大数据·人工智能·flink
计算机编程指导师10 小时前
【计算机毕设推荐】基于Hadoop+Spark的公共交通运营数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·数据分析·spark·交通
QYR_1112 小时前
机械制造用固体润滑涂层市场分析:2032年全球市场规模预计达8.78亿元,CAGR为6.2%
大数据·人工智能·物联网
数字化顾问12 小时前
(144页PPT)数字化转型汽车企业数智化战略规划(附下载方式)
大数据
智慧物业老杨13 小时前
数字底座,重构小区治理秩序
大数据
计算机编程指导师14 小时前
【计算机毕设选题推荐】基于Hadoop的宫颈癌变进程光谱数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·宫颈癌变
Pniubi14 小时前
分布式锁分类讲解
分布式
guhunyihan14 小时前
无代码系统搭建平台,探索恐象 AI 带来的开发新范式
大数据·人工智能
计算机编程指导师15 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的化妆品销售大数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·化妆品