Spark Mesos 集群在执行器中为 spark-class 设置了错误的路由

Spark Mesos cluster setting a wrong route for spark-class in executors

我有一个 flask API,它使用 pyspark 启动 spark 并将作业发送到 mesos 集群。

执行器失败,因为它正在执行 spark-class 在 Flask API.

中的路径

日志:

I0903 13:16:14.295672  4754 exec.cpp:164] Version: 1.9.0
I0903 13:16:14.299304  4760 exec.cpp:237] Executor registered on agent 3ac2aa4b-ff5b-4340-a56e-efe96b3b07a2-S2
I0903 13:16:14.301093  4758 executor.cpp:190] Received SUBSCRIBED event
I0903 13:16:14.301807  4758 executor.cpp:194] Subscribed executor on XXXXX
I0903 13:16:14.301923  4758 executor.cpp:190] Received LAUNCH event
I0903 13:16:14.302549  4758 executor.cpp:722] Starting task 3
I0903 13:16:14.310398  4758 executor.cpp:738] Forked command at 4764
sh: /home/user/source/environment/lib/python3.7/site-packages/pyspark/./bin/spark-class: No such file or directory
I0903 13:16:14.397004  4760 executor.cpp:1039] Command exited with status 127 (pid: 4764)
I0903 13:16:15.398034  4763 process.cpp:935] Stopped the socket accept loop

粗体路径是spark-class实际在Flask服务器(作业的请求者)中的部分

sh: /home/user/source/environment/lib/python3.7/site-packages/pyspark/./bin/spark-class: 没有那个文件或目录

这里:

-rwxr-xr-x 1 root root 3.2K Sep  1 11:07 /home/user/source/environment/lib/python3.7/site-packages/pyspark/bin/spark-class

也许我缺少环境变量,或者我可以将路径作为参数发送吗?

通过添加指向 Spark 二进制文件的 属性 将 spark 所在的路径添加到执行器中来解决:

spark.mesos.executor.home