aux*_*xdx 6 mesos apache-spark
我只有一台机器,并希望使用mesos集群模式运行spark作业.使用节点集群运行可能更有意义,但我主要想首先测试mesos以检查它是否能够更有效地利用资源(同时运行多个spark作业而不进行静态分区).我尝试了很多方法但没有成功.这是我做的:
构建mesos并运行mesos主站和从站(同一台机器中的2个从站).
sudo ./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos
sudo ./bin/mesos-slave.sh --master=127.0.0.1:5050 --port=5051 --work_dir=/tmp/mesos1
sudo ./bin/mesos-slave.sh --master=127.0.0.1:5050 --port=5052 --work_dir=/tmp/mesos2
Run Code Online (Sandbox Code Playgroud)运行spark-mesos-dispatcher
sudo ./sbin/start-mesos-dispatcher.sh --master mesos://localhost:5050
Run Code Online (Sandbox Code Playgroud)使用调度程序作为主URL提交应用程序.
spark-submit --master mesos://localhost:7077 <other-config> <jar file>
Run Code Online (Sandbox Code Playgroud)但它不起作用:
E0925 17:30:30.158846 807608320 socket.hpp:174] Shutdown failed on fd=61: Socket is not connected [57]
E0925 17:30:30.159545 807608320 socket.hpp:174] Shutdown failed on fd=62: Socket is not connected [57]
Run Code Online (Sandbox Code Playgroud)
如果我使用spark-submit --deploy-mode集群,那么我收到另一条错误消息:
Exception in thread "main" org.apache.spark.deploy.rest.SubmitRestConnectionException: Unable to connect to server
Run Code Online (Sandbox Code Playgroud)
如果我不使用调度程序但直接使用mesos master url,它可以正常工作: - master mesos:// localhost:5050(客户端模式).根据文档,Mesos集群不支持集群模式,但它们在此处为集群模式提供了另一条指令.这有点令人困惑?我的问题是:
谢谢.
我用你的场景来尝试,它可能有效。有一点不同,我使用 ip 地址而不是“localhost”和“127.0.0.1”,所以只需再试一次并检查http://your_dispatcher:8081(在浏览器上)是否存在。
这是我的火花提交命令:
$spark-submit --deploy-mode cluster --master mesos://192.168.11.79:7077 --class "SimpleApp" SimpleAppV2.jar
Run Code Online (Sandbox Code Playgroud)
如果成功可以看到如下
{
"action" : "CreateSubmissionResponse",
"serverSparkVersion" : "1.5.0",
"submissionId" : "driver-20151006164749-0001",
"success" : true
}
Run Code Online (Sandbox Code Playgroud)
当我收到您的错误日志时,我重新启动计算机并重试您的步骤。它也有效。
| 归档时间: |
|
| 查看次数: |
2912 次 |
| 最近记录: |