如何启用Spark mesos docker执行程序?

我正在研究Mesos&Spark之间的整合。 现在,我可以在Docker中启动SlaveMesosDispatcher; 我也喜欢在Mesos docker中运行Spark执行程序。 我做了以下configuration,但我得到一个错误; 有什么build议?

组态:

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 

注:火花安装在/ 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。 当你为Spark指定一个Docker镜像来与Mesos一起使用时,它希望容器的默认工作目录在$SPARK_HOME里面,它可以find./bin/spark-submit。

你可以在这里看到这个逻辑 。

它看起来不像你能够通过Sparkconfiguration本身configuration工作目录,这意味着你需要在ubuntu基础上构build一个自定义的图像,简单地做一个WORKDIR /root/spark