У меня есть кластер Spark (мастер + 2 рабочих) в кластере Kubernetes (Minikube).
Я хочу добавить Zeppelin в мой кластер k8s и настроить его для использования моего кластера Spark.
Поэтому я попытался сделать это, используя Zeppelin 0.8.1 из apache / zeppelin или другое изображение, построенное на Zeppelin 0.9.0-SNAPSHOT (все еще в разработке)
Я следовал официальной документации Zeppelin (для которой требуется как минимум Zeppelin 0.9.0, хотя он еще не выпущен ¯ \ _ (ツ) _ / ¯)
Что я сделал:
- Потянув изображение докера Zeppelin
- Сборка здания Spark
- Скачивание zeppelin-server.yaml из документации
- Редактирование так, чтобы он имел правильный путь к моему локальному изображению Spark и изображению Zeppelin
- kubectl apply -f (файлы yaml для spark и zeppelin)
Затем я просматриваю свой Блокнот 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
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, я понятия не имею, как установить мой SPARK_HOME и какое значение оно должно иметь.
Примечания:
- Я использую Spark 2.4.0
- Я также пытался собрать образ Zeppelin вручную, но при использовании источника, находящегося в разработке, сборка не удалась)