在阅读 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。
欢迎关注公众号和访问网站,了解更多技术资讯:
标签:xml,site,yarn,SparkSubmit,spark,Configuration,加载 From: https://blog.51cto.com/u_14045662/11883216