最近调研了 spark-sql on yarn 时 UserGroupInformation 初始化最早时机,将 spark-sql on yarn 的整个提交流程阅读了一遍,确定了 SparkSubmit 类范围,对 SparkSubmit 进行了阅读和跟进,找出了关键的代码,如下图所示,lazy val secMgr = new SecurityManager(sparkConf),在 SecurityManager 构造方法中完成了 UserGroupInformation 初始化,该处为最早的初始化地方。

spark-sql on yarn关于UserGroupInformation初始化最早时机_sql

对该部分代码进行了堆栈采集,如下图:

spark-sql on yarn关于UserGroupInformation初始化最早时机_大数据_02

从 org.apache.spark.SecurityManager.(SecurityManager.scala:220) 构造方法往下跟进,找到 org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:683),标识 UserGroupInformation 的初始化,此处为 UserGroupInformation 在 spark-sql on yarn 时最早的初始化时机。

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

spark-sql on yarn关于UserGroupInformation初始化最早时机_sql_03

 谷百特博客