欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Spark任务提交后是如何完成提交过程的?源码解析!

发布时间:2024/2/28 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Spark任务提交后是如何完成提交过程的?源码解析! 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Spark任务提交后是如何完成提交过程的?源码解析!

我们熟知的提交命令:

spark­submit ­v ­­class xxx  ­­master spark://xxx7077 ....

然后我们vi spark­submit.

看到他实际上启动的是SparkSubmit的类。

然后我们来到源码中找到SparkSubmit,进行分析。

刚进入类中,你就会发现:

我们说spark的四种运行模式,就是他们。

既然SparkSubmit能运行任务,那么他应该能启动一个属于自己的进程,也就是说他会有自己的mian方法。

果不其然:

在对象SparkSubmit中有个main方法,实例化一个SparkSubmitArguments类,调用该类的Submit方法。

在submit中首先引用了prepareSubmitEnvironment方法,见名知意,准备提交的环境,点进去:

在submit()方法中先调用了prepareSubmitEnvironment()方法,再调用了dorunMain()方法。

看你选择那种运行环境,

【注】后面代码还有各种信息,这里没有全部截出来。自行查阅

然后回到submit方法,点击runMain,进入runmain方法,往下找

你会发现我们常说的App

点击SparkApplication 

接下来,找一下SparkApplication的实现类ClientApp类。当调用app.start()时,实际上调用的是ClientApp的start()方法。
在start()方法中,有个很重要的类ClientEndPoint。这个类是用于把消息发送给Driver的代理,很重要。跟踪进去。

ClientEndpoint类

先实例化一个Command类,再实例化一个DriverDescription类。最后提交请求给master,请求注册driver。【ClientEndpoint类】

至此:spark的submit过程算是结束了


总结:

总结

以上是生活随笔为你收集整理的Spark任务提交后是如何完成提交过程的?源码解析!的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。