Подключение задания Spark от Jupyter к сервису Spark, запущенному в Мезосфере - PullRequest
0 голосов
/ 07 сентября 2018

Я использую 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?

Спасибо заранее. Если что-то требует каких-либо разъяснений, пожалуйста, спросите. Я много гуглил по этому вопросу, но безрезультатно.

...