Spark Multi Tenancy系列 - 2 还是社区问题

问题1 spark.driver.allowMultipleContexts

  • SparkContext.scala#L79
    • 这个配置项拆开来念spark driver allow multiple contexts, 难得有句英文句子单词我都认识,组合起来还认识,可事实居然完全和这句子相反。
    • 这东西绝对比任何传销组织的洗脑口号强千倍万倍,刚入坑的小白必然会反复试验,前仆后继。
  • JIRA
    • [SPARK-4180]SparkContext constructor should throw exception if another SparkContext is already running
    • 原来就是为了抛个异常出来,并不是实现了multiple contexts,23333。
  • Pull Request
    • [SPARK-4180] [Core] Prevent creation of multiple active SparkContexts
    • PR的title是prevent,加个配置项叫allow,老外果然不用上语文课。

问题2 runAsSparkUser

  • SparkHadoopUtil.scala#L63
    • 这个方法是在AM进程及Executor进程启动之初调用的,字面意思好像可以传个用户参数就可以以不同用户切换
    • 启动AM Container及Executor Container如果是Yarn那边配置了LCE而非DCE的话,这个用户应该是由Yarn app的提交者确定的,这边runAsSparkUser封装部分初始化启动代码,只能说这边这个用户只能控制executor的初始化,并不能涵盖task的执行。
    • 这个方法写的也用问题,最后的逻辑都是拿同一个用户去创建了两遍然后去transferCredentials,然后这个方法也貌似只能转移一个subject中public的Credential。

你可能感兴趣的:(Spark Multi Tenancy系列 - 2 还是社区问题)