当前位置:
首页 >
Spark任务提交后是如何完成提交过程的?源码解析!
发布时间:2024/2/28
49
豆豆
生活随笔
收集整理的这篇文章主要介绍了
Spark任务提交后是如何完成提交过程的?源码解析!
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Spark任务提交后是如何完成提交过程的?源码解析!
我们熟知的提交命令:
sparksubmit v class xxx master spark://xxx7077 ....然后我们vi sparksubmit.
看到他实际上启动的是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任务提交后是如何完成提交过程的?源码解析!的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 怎么在idea中找实现类
- 下一篇: 大剑无锋之hadoop默认的数据类型都有