Я использую Mesosphere для настройки кластера данных. Я успешно развернул Spark, и всякий раз, когда я запускаю задание spark через инструмент командной строки DCOS, вот так:
dcos spark run --submit-args="--class org.apache.spark.examples.SparkPi https://downloads.mesosphere.com/spark/assets/spark-examples_2.11-2.0.1.jar 30"
Это работает просто отлично. Mesos регистрирует драйвер и успешно выполняет задание Spark, что можно найти в / service / spark
Теперь для следующего шага я пытаюсь отправить искровые задания через внешний блокнот Jupyter. Все настройки брандмауэра и все правильно, сервер может получить доступ ко всему от главного узла через свою частную сеть. Но я не могу подключить мой ноутбук Jupyter с кодом Spark Scala. Я предполагаю, что аутентификация, которая происходит до подключения инструмента DCOS CLI, очевидно, не включена ни в один запрос из записной книжки Jupyter.
У меня действительно установлен инструмент DCOS CLI на том же сервере ноутбука Jupyter. У меня также есть токен доступа при использовании:
dcos config show core.dcos_acs_token
Теперь, пожалуйста, взгляните на код ниже, который находится в моей записной книжке Jupyter:
import org.apache.spark.sql.SparkSession
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
val sparkConf = new SparkConf()
.setMaster("mesos://<private_master_ip>/service/spark")
.setAppName("Spark on Mesos Alpha Cluster")
.set("spark.submit.deployMode", "cluster")
.set("spark.driver.cores", "1")
.set("spark.driver.memory", "1G")
.set("spark.executor.memory", "1G")
.set("spark.mesos.executor.docker.forcePullImage", "true")
.set("spark.mesos.executor.docker.image", "mesosphere/spark:2.3.1-2.2.1-2-hadoop-2.6")
val sparkContext = new SparkContext(sparkConf)
Это не работает, так как выдает следующую ошибку:
org.apache.spark.SparkException: Exiting due to error from cluster scheduler: Failed to create a master detector for '<private_master_ip>/service/spark': Failed to parse '<private_master_ip>/service/spark'
at org.apache.spark.scheduler.TaskSchedulerImpl.error(TaskSchedulerImpl.scala:500)
at org.apache.spark.scheduler.cluster.mesos.MesosCoarseGrainedSchedulerBackend.error(MesosCoarseGrainedSchedulerBackend.scala:669)
at org.apache.mesos.MesosSchedulerDriver.start(Native Method)
at org.apache.mesos.MesosSchedulerDriver.run(MesosSchedulerDriver.java:254)
at org.apache.spark.scheduler.cluster.mesos.MesosSchedulerUtils$$anon$1.run(MesosSchedulerUtils.scala:125)
lastException = null
Name: org.apache.spark.SparkException
Message: Error starting driver, DRIVER_ABORTED
Как уже говорилось ранее, я предполагаю, что это частично связано с авторизацией. У меня есть токен доступа, я просто не знаю, как включить его в блокнот Jupyter.
Но я мог бы и здесь оказаться на неверном пути. Как мне подключить мой ноутбук Jupyter Spark Scala к сервису мезосферы Spark?
Спасибо заранее. Если что-то требует каких-либо разъяснений, пожалуйста, спросите. Я много гуглил по этому вопросу, но безрезультатно.