我有一个Spark集群(主节点+2个工作节点)在Kubernetes集群中(Minikube)。
我想在我的k8s集群中添加Zeppelin,并配置它以使用我的Spark集群。
因此,我尝试使用来自apache/zeppelin的Zeppelin 0.8.1镜像,或者构建在Zeppelin 0.9.0-SNAPSHOT上的另一个镜像(仍在开发中) 我遵循了官方的Zeppelin文档(至少需要Zeppelin 0.9.0,尽管它尚未发布¯\_(ツ)_/¯)
我做了以下事情:
首先,我发现错误来自于函数
但是我迷失的主要问题是,因为我使用Zeppelin和Spark docker镜像,我不知道如何设置我的SPARK_HOME以及它应该具有哪个值。
注意:
我想在我的k8s集群中添加Zeppelin,并配置它以使用我的Spark集群。
因此,我尝试使用来自apache/zeppelin的Zeppelin 0.8.1镜像,或者构建在Zeppelin 0.9.0-SNAPSHOT上的另一个镜像(仍在开发中) 我遵循了官方的Zeppelin文档(至少需要Zeppelin 0.9.0,尽管它尚未发布¯\_(ツ)_/¯)
我做了以下事情:
- 拉取Zeppelin docker镜像
- 构建Spark docker镜像
- 从文档中下载zeppelin-server.yaml文件
- 编辑它以使路径正确指向我的本地Spark镜像和Zeppelin镜像
- kubectl apply -f (spark & zeppelin yaml)文件
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
at org.apache.zeppelin.interpreter.launcher.SparkInterpreterLauncher.setupPropertiesForSparkR(SparkInterpreterLauncher.java:181)
at org.apache.zeppelin.interpreter.launcher.SparkInterpreterLauncher.buildEnvFromProperties(SparkInterpreterLauncher.java:63)
at org.apache.zeppelin.interpreter.launcher.StandardInterpreterLauncher.launch(StandardInterpreterLauncher.java:86)
at org.apache.zeppelin.interpreter.InterpreterSetting.createInterpreterProcess(InterpreterSetting.java:698)
at org.apache.zeppelin.interpreter.ManagedInterpreterGroup.getOrCreateInterpreterProcess(ManagedInterpreterGroup.java:63)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getOrCreateInterpreterProcess(RemoteInterpreter.java:110)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.internal_create(RemoteInterpreter.java:163)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.open(RemoteInterpreter.java:131)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:290)
at org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:402)
at org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:75)
at org.apache.zeppelin.scheduler.Job.run(Job.java:172)
at org.apache.zeppelin.scheduler.AbstractScheduler.runJob(AbstractScheduler.java:121)
at org.apache.zeppelin.scheduler.RemoteScheduler$JobRunner.run(RemoteScheduler.java:187)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
首先,我发现错误来自于函数
setupPropertiesForSparkR()
,即使我没有使用Spark R。但是我迷失的主要问题是,因为我使用Zeppelin和Spark docker镜像,我不知道如何设置我的SPARK_HOME以及它应该具有哪个值。
注意:
- 我使用Spark 2.4.0
- 我也尝试手动构建Zeppelin映像,但使用正在开发中的源代码,构建失败。
ENV SPARK_HOME /opt/spark
这一行不是已经完成了工作吗? - Nakeuh