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内容请搜索靠谱客的其他文章。
发表评论 取消回复