概述
Spark之Spark submit脚本到底干了什么?
经常我们在提交Spark任务时,我们很自然的去想到"这个我知道,Spark submit,然后他的参数是--------(吧啦吧啦一大片)"
可曾想到 到底Spark submit这个脚本到底经历了一个怎么样的过程呢?
话不多说 直接上源码
从源码上看是执行了spark_home下的/bin/spark-class这个脚本,我们进入spark-class这个脚本。
第一步找到java的环境变量路径:
第二步 找jar包
然后一直往下走,走到Main(调用org.apache.spark.launcher中的Main进行参数注入)
然后我们回到spark-submit脚本
我们去关注这个org.apache.spark.deploy.SparkSubmit这个类
在spark提交任务后就会执行org.apache.spark.deploy.SparkSubmit这个类的main方法:
先输出一些日志信息
调用doSubmit方法。
我们走进doSubmit方法:
doSubmit方法里做了这几件事:
初始化log对象
解析参数
根据参数列表中的参数类型执行对应任务
然后我们进去看看submit的流程:
最后走到runMain方法:
来了 走到了重点的地方
看着这个classForName有点眼熟,对不对。我们点进去看看->
然后后面就在反射----(后面省略10000字)
感谢大家!
关注我的微信公众号:
最后
以上就是会撒娇蜡烛为你收集整理的Spark之Spark submit脚本到底干了什么?的全部内容,希望文章能够帮你解决Spark之Spark submit脚本到底干了什么?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复