apache-spark - 如何启用Spark mesos docker executor?

标签 apache-spark docker mesos

我正在研究Mesos和Spark之间的集成。现在,我可以在docker中启动SlaveMesosDispatcher;而且我也想在Mesos docker中运行Spark executor。我对此进行了以下配置,但出现错误;有什么建议吗?

组态:

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?

最佳答案

我认为您在这里看到的问题是由于容器的当前工作目录不在Spark的安装位置而导致的。当您为Spark指定与Mesos一起使用的docker镜像时,它将期望容器的默认工作目录位于$SPARK_HOME中,可以在其中找到./bin/spark-submit。

You can see that logic here

看起来您无法通过Spark配置本身来配置工作目录,这意味着您需要在ubuntu之上构建仅执行WORKDIR /root/spark的自定义镜像。

关于apache-spark - 如何启用Spark mesos docker executor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33160859/

相关文章:

python - Spark 中 IF then ELSE 的等价物

apache-spark - 如何向 Delta Lake 表添加新列?

Docker - 提交正在运行的进程的容器 (postgresql)

docker - Ubuntu - 升级 docker-compose 版本

jenkins - 是否有可能让 Jenkins 更快地从附加云创建工作人员?

docker - 如何在一个mesos从节点上运行多个docker容器?

scala - Spark保存(写入) Parquet 只有一个文件

apache-spark - MapR 流和 PySpark

java - 如何在docker入口点之前透明地运行脚本?

mesos - 如何从 Mesos 框架 Scheduler 类读取 mesos 任务 stdout/stderr?