【问题标题】:How to run Spark Jobserver on Mesosphere's DC/OS如何在 Mesosphere 的 DC/OS 上运行 Spark Jobserver
【发布时间】:2016-06-08 20:30:18
【问题描述】:

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

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

我的日志没有显示太多,Docker 容器在 stdout 中以下内容后以 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 作业服务器 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"
    }
  }
}

任何帮助将不胜感激。

【问题讨论】:

    标签: apache-spark mesosphere spark-jobserver dcos


    【解决方案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": {}
        }
      ]
    }
    

    【讨论】:

    • 好的,所以对我有用的实际上只是使用比 Jobserver 文档中 docker.md 中建议的更高数量的 CPU/内存运行。但事实证明,SPARK_MASTER 实际上根本不适合我。而且我仍然找不到一个有效的。我应该能够通过马拉松连接到由 Spark 应用程序运行的 Spark Mesos Dispatcher,不是吗?它似乎不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多