共计 559 个字符,预计需要花费 2 分钟才能阅读完成。
在阅读
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。

欢迎关注公众号和访问网站,了解更多技术资讯:

正文完