在阅读SparkSubmit
源代码时,重点关注Configuration
的资源文件的加载情况,默认通过new Configuration()
构造方法创建时,只会加载core-default.xml
和core-site.xml
文件,但是SparkSubmit
中打印Configuration
时,发现还会加载yarn-site.xml
,SparkSubmit
代码中没有看到显示加载yarn-site.xml
的地方,那yarn-site.xml
从哪里加载进来的?
跟进SparkSubmit
源代码,找到关键代码 lazy val secMgr = new SecurityManager(sparkConf),
secMgr
懒初始化,触发了yarn-site.xml
的加载。如下图所示:
跟进new SecurityManager(sparkConf)
,打印yarn-site.xml
的相关堆栈,如下所示:
上述的关键代码,org.apache.hadoop.mapred.JobConf.(JobConf.java:119)
,打开JobConf
这个类,如下图:
继续打开ConfigUtil.loadResources()
,如下图,在ConfigUtil
中显示加载了yarn-site.xml。
欢迎关注公众号和访问网站,了解更多技术资讯:
评论区