浏览代码

[livy] Pass the MASTER environment variable through a YARN app

Erick Tryzelaar 10 年之前
父节点
当前提交
092109f
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      apps/spark/java/livy-yarn/src/main/scala/com/cloudera/hue/livy/yarn/Client.scala

+ 6 - 0
apps/spark/java/livy-yarn/src/main/scala/com/cloudera/hue/livy/yarn/Client.scala

@@ -98,6 +98,12 @@ class Client(yarnConf: YarnConfiguration) {
     containerCtx.setCommands(cmds)
     containerCtx.setCommands(cmds)
     containerCtx.setLocalResources(Map("__package" -> packageResource))
     containerCtx.setLocalResources(Map("__package" -> packageResource))
 
 
+    // FIXME: Spark needs the `MASTER` environment passed through to run on YARN. This needs a better approach.
+    val master = System.getenv("MASTER")
+    if (master != null) {
+      containerCtx.getEnvironment()("MASTER") = master
+    }
+
     appContext.setApplicationId(appId)
     appContext.setApplicationId(appId)
     appContext.setAMContainerSpec(containerCtx)
     appContext.setAMContainerSpec(containerCtx)
     appContext.setApplicationType("livy")
     appContext.setApplicationType("livy")