如何 运行 Mesosphere DC/OS 上的 Spark Jobserver
How to run Spark Jobserver on Mesosphere's DC/OS
关于 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 的 运行ning,并且该脚本由于某种原因正在消失?
我把我的马拉松文件一路剥离到这个,它仍然给我同样的错误:
{
"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"
}
}
}
如有任何帮助,我们将不胜感激。
以下内容在我尝试时对我有用。
{
"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": {}
}
]
}
关于 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 的 运行ning,并且该脚本由于某种原因正在消失?
我把我的马拉松文件一路剥离到这个,它仍然给我同样的错误:
{
"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"
}
}
}
如有任何帮助,我们将不胜感激。
以下内容在我尝试时对我有用。
{
"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": {}
}
]
}