如何启用Spark mesos docker executor?

时间:2015-10-16 00:53:00

标签: apache-spark docker mesos

我正在研究Mesos& amp;火花。现在,我可以在docker中启动SlaveMesosDispatcher;我也喜欢在Mesos docker中运行Spark执行器。我为它做了以下配置,但是我收到了一个错误;有什么建议吗?

配置:

Spark:conf / spark-defaults.conf

spark.mesos.executor.docker.image        ubuntu
spark.mesos.executor.docker.volumes      /usr/bin:/usr/bin,/usr/local/lib:/usr/local/lib,/usr/lib:/usr/lib,/lib:/lib,/home/test/workshop/spark:/root/spark
spark.mesos.executor.home                /root/spark
#spark.executorEnv.SPARK_HOME             /root/spark
spark.executorEnv.MESOS_NATIVE_LIBRARY   /usr/local/lib

注意:spark安装在/ home / test / workshop / spark中,并且安装了所有依赖项。

将SparkPi提交给调度程序后,驱动程序作业已启动但失败。错误是:

I1015 11:10:29.488456 18697 exec.cpp:134] Version: 0.26.0
I1015 11:10:29.506619 18699 exec.cpp:208] Executor registered on slave b7e24114-7585-40bc-879b-6a1188cb65b6-S1
WARNING: Your kernel does not support swap limit capabilities, memory limited without swap.
/bin/sh: 1: ./bin/spark-submit: not found

对于这种情况,有没有人知道如何在docker中映射/设置spark home?

1 个答案:

答案 0 :(得分:6)

我认为您在此处看到的问题是容器的当前工作目录不是安装Spark的结果。当您指定Spark的docker镜像以与Mesos一起使用时,它希望容器的默认工作目录位于$SPARK_HOME内,它可以找到./bin/spark-submit。

You can see that logic here

您似乎无法通过Spark配置本身配置工作目录,这意味着您需要在ubuntu之上构建自定义图像做WORKDIR /root/spark