我使用this脚本构建了Spark独立集群。
然后我想使用另一个容器中的Zeppelin将作业提交到该集群。
问题是,当我尝试从齐柏林飞艇上运行任何东西时,我得到一个例外:
java.lang.RuntimeException: SPARK_HOME is not specified in interpreter-setting for non-local mode, if you specify it in zeppelin-env.sh, please move that into interpreter setting
如何在Zeppelin容器中设置SPARK_HOME变量?
问题是Spark在另一个容器中,我想知道我是否在做正确的事情?
答案 0 :(得分:0)
构建映像或使用官方齐柏林飞艇是相同的,因此我仅使用官方dockerhub映像来解释示例:
$ docker run --rm apache/zeppelin:0.8.1 cat /zeppelin/conf/zeppelin-env.sh.template | grep SPARK_HOME
## defining SPARK_HOME makes Zeppelin run spark interpreter process using spark-submit
# export SPARK_HOME # (required) When it is defined, load it instead of Zeppelin embedded Spark libraries
## without SPARK_HOME defined, Zeppelin still able to run spark interpreter process using embedded spark binaries.
## however, it is not encouraged when you can define SPARK_HOME
从上面可以看到,在此配置文件中,可以设置SPARK_HOME
,现在唯一需要做的就是编写自己的配置文件,如下所示:
zeppelin-env.sh:
#!/bin/bash
export SPARK_HOME=xxxxxx
然后,像下一个启动容器那样运行时将其安装到容器上,您可以根据所引用的文档添加其他参数:
docker run -idt -v $(pwd)/zeppelin-env.sh:/zeppelin/conf/zeppelin-env.sh apache/zeppelin:0.8.1
此外,我注意到您所引用的文档中也告诉您执行此操作,请参见here