Spark on Mesos cluster mode

1. cluster mode

spark cluster mode指的是將driver運行在cluster而不是client中??梢允褂?code>surpervise機制,指的是driver會自動的進行失敗重試。

2. mesos-dispatcher

如果要在mesos中使用cluster模式,必須先開啟mesos-dispatcher服務(wù)。

啟動mesos-dispatcher

sudo -u admin /usr/install/spark/sbin/start-mesos-dispatcher.sh \
-m mesos://192.168.6.52:5050 \
-z 192.168.6.55:2181,192.168.6.56:2181,192.168.6.57:2181

可以在8081端口中看到web ui:


這里寫圖片描述

提交任務(wù)測試:

/usr/install/spark/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master mesos://192.168.6.53:7077 \
--deploy-mode cluster \
--surpervise \
hdfs://tdhdfs/lib/spark-examples-1.6.2-hadoop2.4.1.jar \
100

note: jar包必須可以通過網(wǎng)絡(luò)獲取到,比如 http://, hdfs:// 或 s3n://

啟動surpervisor的driver只能通過kill命令關(guān)閉

./bin/spark-submit --master mesos://192.168.6.52:7077 --kill $driverId

查看任務(wù)狀態(tài):

/usr/install/spark/bin/spark-status --master mesos://192.168.6.52:7077 --kill driver-20160822120724-0002

3. 在marathon上運行dispatcher

優(yōu)點:

  • 便于管理
  • 狀態(tài)檢測(服務(wù)失敗重啟等)

啟動mesos dispatcher

mesos的cmd中增加

/usr/install/spark/bin/spark-class org.apache.spark.deploy.mesos.MesosClusterDispatcher \
-m mesos://192.168.6.52:5050 \
-z 192.168.6.55:2181,192.168.6.56:2181,192.168.6.57:2181

將dispatcher服務(wù)運行在指定節(jié)點中:

//將任務(wù)運行在dp0652中
"constraints": [["hostname", "CLUSTER", "dp0652"]]

marathon web ui:


這里寫圖片描述

4. FAQ :

  1. 無法識別啟動時提交的role
    啟動role時,配置--conf spark.mesos.role=production不生效,所以無法申請到資源,報錯提示如下:
    State: TASK_ERROR, Message: Task uses more resources cpus():1; mem():1024 than available cpus(test):4; mem(*):20480;

    這個目前還沒有發(fā)現(xiàn)解決方法,在下面這個issues中也有人遇到相同的問題,不過沒人做出回復(fù):
    Support framework authentication and role in Mesos framework

  2. 存在單點問題

    MesosClusterDispatcher現(xiàn)在不支持啟動多個實例保證HA。
    同時啟動Dispatcher時無法使用mesos://zk://...進行提交,只能使用mesos://hostName:5050的方式。

5. 結(jié)語

原生的MesosClusterDispatcher目前還不適合生產(chǎn)環(huán)境使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容