Как запустить Spark Jobserver на DC/OS от Mesosphere

Я многого не понимаю в Spark, Spark Jobserver и DC/OS от Mesosphere. Но мне очень нравится проект Jobserver, а также очень нравится наш кластер DC/OS, и я бы очень хотел, чтобы они работали вместе.

Добавление контейнера Docker в файл marathon, как в этом примере, не работает. Я подумал, может быть, это все из-за того, что я не знал, какой URL-адрес SPARK_MASTER передать (чего я до сих пор не знаю, любая помощь будет очень признательна), но затем я попытался удалить это из файла марафона, который все еще должен работать проект в локальном режиме, и это тоже не работает. Это заставляет меня понять, что помимо того, что я не знаю, как подключить этот сервер заданий к моему диспетчеру искр DCOS, я также просто не знаю, почему этот контейнер Docker выйдет из строя в кластере, но не на моей локальной машине, даже если он не передан аргументы.

Мои журналы мало что показывают, а контейнер Docker завершает работу со статусом 137 после следующего в стандартном выводе:

LOG_DIR empty; logging will go to /tmp/job-server

Который, когда я запускаю что-то локально, является последним журналом, прежде чем он продолжит запускать log4j в мой стандартный вывод и сообщает мне, что сервер заданий запускается. Я вижу следующее в stderr:

app/server_start.sh: line 54:    15 Killed                  $SPARK_HOME/bin/spark-submit --class $MAIN --driver-memory $JOBSERVER_MEMORY --conf "spark.executor.extraJavaOptions=$LOGGING_OPTS" --driver-java-options "$GC_OPTS $JAVA_OPTS $LOGGING_OPTS $CONFIG_OVERRIDES" $@ $appdir/spark-job-server.jar $conffile

Что, кажется, предполагает, что server_start.sh запускается из докера Spark JobServer, и этот скрипт по какой-то причине умирает?

Я удалил свой марафонский файл до этого, который все еще дает мне те же ошибки:

{
  "id": "/jobserver",
  "cpus": 0.5,
  "mem": 100,
  "ports": [0],
  "instances": 1,
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "velvia/spark-jobserver:0.6.2.mesos-0.28.1.spark-1.6.1"
    }
  }
}

Любая помощь будет принята с благодарностью.


person Nandan Rao    schedule 08.06.2016    source источник


Ответы (1)


Следующее работало для меня когда-то, когда я пробовал.

{
  "id": "/spark.jobserver",
  "cmd": null,
  "cpus": 2,
  "mem": 2048,
  "disk": 50,
  "instances": 1,
  "container": {
    "type": "DOCKER",
    "volumes": [],
    "docker": {
      "image": "velvia/spark-jobserver:0.6.2.mesos-0.28.1.spark-1.6.1",
      "network": "BRIDGE",
      "portMappings": [
        {
          "containerPort": 8090,
          "hostPort": 0,
          "servicePort": 10001,
          "protocol": "tcp",
          "labels": {}
        }
      ],
      "privileged": false,
      "parameters": [],
      "forcePullImage": false
    }
  },
  "env": {
    "SPARK_MASTER": "mesos://zk://10.29.83.3:2181,10.29.83.4:2181/mesos"
  },
  "portDefinitions": [
    {
      "port": 10001,
      "protocol": "tcp",
      "labels": {}
    }
  ]
}
person noorul    schedule 09.06.2016
comment
Итак, то, что сработало для меня, на самом деле просто работало с большим количеством процессоров/памяти, чем было предложено в docker.md в документации Jobserver. Но оказалось, что SPARK_MASTER у меня вообще не работает. И я до сих пор не могу найти тот, который работает. Я должен иметь возможность подключиться к диспетчеру Spark Mesos Dispatcher, который запускается приложением Spark, через марафон, не так ли? Кажется, это не работает. - person Nandan Rao; 23.06.2016