spark 提交java_jar包是怎么提交到Spark上运行的

本文详细介绍了如何通过spark-submit命令在Standalone集群上以client模式提交Spark程序。提交过程涉及Spark DriverDescription的创建,Master的调度以及Worker的执行。在Master接收到SubmitDriver消息后,它会创建Driver并分配给Worker运行。最终,Worker上的DriverRunner执行程序,但DriverWrapper的具体执行细节仍有待进一步理解。

我们都知道,写好spark程序后,可以通过命令行spark-submit方式提交到集群,那么这个具体的过程是怎么搞得呢?

spark有多种集群方式,如yarn,standalone等。提交方式又分为client和cluster等模式,这里就先拿standalone的client方式举例。

standalone方式下,spark集群有一个master和多个worker组成集群,现在spark又支持HA方式的热备,保障master安全,这块我们就不谈了,知道这个概念就行了。

spark-submit classMain xx.jar -master spark://127.0.0.1:8088 ,类似这样的命令提交jar包后,spark-submit先启动要给Client程序,然后这个Client程序将spark程序(classMain)打包成DriverDescription,并放在SubmitDriver消息体内提交给Master。

Master收到SubmitDriver消息后,根据消息里的参数DriverDescription创建好Driver,并等待调度。调度是schedule()方法触发的。这时候Master会找到一台Worker。并且给这台Worker发送LaunchDriver命令,LaunchDriver命令里带的参数就包括这个Driver的信息。

然后就是Worker的过程了,这时候这台Worker其实就是我们的spark程序的Driver所在的机器。这时候Worker会执行DriverRunnber,跑的就是我们的spark程序。

最后还有个小疑问?DriverRunner里是不是执行的是DriverWrapper呢?这点笔者还没完全搞明白哦。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值