我只有一臺機器,並且想要使用mesos集羣模式運行spark任務。運行一組節點可能更有意義,但我主要想先測試一下mesos以檢查它是否能夠更有效地利用資源(同時運行多個spark作業而沒有靜態分區)。我嘗試了很多方法,但沒有成功。這是我做的:使用分派器的Spark Mesos集羣模式
構建mesos並運行兩個mesos主站和從站(同一臺機器上的兩個從站)。
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
運行火花mesos-調度
sudo ./sbin/start-mesos-dispatcher.sh --master mesos://localhost:5050
與調度員作爲主站網址提交的應用程序。
spark-submit --master mesos://localhost:7077 <other-config> <jar file>
但它不工作:
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]
如果我用火花提交--deploy模式的集羣,然後我得到了另一條錯誤消息:
Exception in thread "main" org.apache.spark.deploy.rest.SubmitRestConnectionException: Unable to connect to server
它如果我不使用調度程序,但直接使用mesos master url:--master mesos:// localhost:5050(client mode)。根據documentation,Mesos羣集不支持羣集模式,但它們爲羣集模式here提供了另一條指令。所以這有點令人困惑?我的問題是:
- 我該如何得到它的作品?
- 如果我直接從主節點提交應用程序/ jar,我應該使用客戶端模式而不是集羣模式嗎?
- 如果我有一臺計算機,我應該產生一個或多個mesos slave進程。基本上,我有一些spark工作,並不想做靜態資源分區。但是如果在沒有靜態分區的情況下使用mesos,它似乎要慢得多?
謝謝。