1

关于 Spark、Spark Jobserver 和 Mesosphere 的 DC/OS,我显然有很多不明白的地方。但我非常喜欢 Jobserver 项目,也非常喜欢我们的 DC/OS 集群,真的很想让它们一起运行。

像这个例子一样,将 Docker 容器扔到马拉松文件中是行不通的。我想这可能是因为我不知道要传递什么 SPARK_MASTER url(我仍然不知道,任何帮助将不胜感激),但后来我尝试从马拉松文件中删除它,它应该仍然运行本地模式下的项目,这也不起作用。这让我意识到,除了不知道如何将这个作业服务器连接到我的 DCOS spark 调度程序之外,我也不知道为什么这个 Docker 容器会在集群上失败,但不会在我的本地机器上失败,即使它没有通过任何论据。

我的日志没有显示太多,并且 Docker 容器在 stdout 中的以下内容之后以 137 状态退出:

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

其中,当我在本地运行时,它是在它继续将 log4j 运行到我的标准输出并告诉我作业服务器正在启动之前的最后一个日志。我在标准错误中看到以下内容:

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 docker 运行,并且该脚本由于某种原因而死了?

我一直剥离我的马拉松文件,这仍然给我同样的错误:

{
  "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"
    }
  }
}

任何帮助将不胜感激。

4

1 回答 1

3

当我尝试时,以下内容对我有用。

{
  "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": {}
    }
  ]
}
于 2016-06-09T03:14:37.940 回答