Spark 任务调度之Launch Driver

概要

本篇博客是Spark 任务调度概述详细流程中的第二部分,第一部分Spark 任务调度之Submit Driver中介绍了从命令行提交任务开始,至Master注册Driver的流程。接下来Master将注册的Driver信息发送到Worker,在Worker节点启动Driver。

Master发送LaunchDriver消息


Spark 任务调度之Submit Driver中最后我们讲到将driver注册到waitingDrivers中,接下来调用schedule()方法(如上图),启动Driver和Executor,查看schedule()

如上图,schedule中调用launchDriver(worker, driver)方法,查看launchDriver

如上图,Master通过RPC通信(可以参考我写的关于Spark RPC的博客)将LaunchDriver消息发送给对应的Worker节点。

Worker节点启动Driver

Worker的receive方法接收并处理LaunchDriver信息,如下

如上图,首先将Driver信息封装为DriverRunner,然后调用其start方法启动Driver,查看DriverRunner的start方法(源码较多,state变量部分做了简化处理)

执行步骤如上图注释,最终使用Java中的java.lang.ProcessBuilder类执行Linux命令的方式启动Driver,Linux命令大致如下

到这里,我们在Spark 任务调度之Submit Driver中通过spark-submit上传的/path/to/examples.jar,通过java -cp命令在Worker节点开始运行了,即Launch Driver,所谓的Driver就是/path/to/examples.jar
最后,将Driver的执行状态返回给Master。

总结

介绍了Master将Driver发送到Worker,及在Worker节点启动Driver的流程,如下
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值