1、前述node
Spark中Standalone有兩種提交模式,一個是Standalone-client模式,一個是Standalone-master模式。web
2、具體apache
一、Standalone-client提交任務方式app
./spark-submit --master spark://node01:7077 --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.
0-hadoop2.6.0.jar 100函數
./spark-submit --master spark://node01:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi ../li
b/spark-examples-1.6.0-hadoop2.6.0.jar 100oop
解釋:--class org.apache.spark.examples.SparkPi main函數測試
../lib/spark-examples-1.6.0-hadoop2.6.0.jar jar包ui
100 main函數須要參數spa
一、client模式提交任務後,會在客戶端啓動Driver進程。調試
二、Driver會向Master申請啓動Application啓動的資源。
三、資源申請成功,Driver端將task發送到worker端執行。
四、worker將task執行結果返回到Driver端。
一、client模式適用於測試調試程序。Driver進程是在客戶端啓動的,這裏的客戶端就是指提交應用程序的當前節點。在Driver端能夠看到task執行的狀況。生產環境下不能使用client模式,是由於:假設要提交100個application到集羣運行,Driver每次都會在client端啓動,那麼就會致使客戶端100次網卡流量暴增的問題。(由於要監控task的運行狀況,會佔用不少端口,如上圖的結果圖)客戶端網卡通訊,都被task監控信息佔用。
二、Client端做用
1. Driver負責應用程序資源的申請
2. 任務的分發。
3. 結果的回收。
4. 監控task執行狀況。
二、Standalone-cluster提交任務方式
./spark-submit --master spark://node01:7077 --deploy-mode cluster --class org.apache.spark.examples.SparkPi ../
lib/spark-examples-1.6.0-hadoop2.6.0.jar 100
一、cluster模式提交應用程序後,會向Master請求啓動Driver.(而不是啓動application)
二、Master接受請求,隨機在集羣一臺節點啓動Driver進程。
三、Driver啓動後爲當前的應用程序申請資源。Master返回資源,並在對應的worker節點上發送消息啓動Worker中的executor進程。
四、Driver端發送task到worker節點上執行。
五、worker將執行狀況和執行結果返回給Driver端。Driver監控task任務,並回收結果。
一、當在客戶端提交多個application時,Driver會在Woker節點上隨機啓動,這種模式會將單節點的網卡流量激增問題分散到集羣中。在客戶端看不到task執行狀況和結果。要去webui中看。cluster模式適用於生產環境
二、 Master模式先啓動Driver,再啓動Application。