Spark開發-Standalone模式

Xlucas發表於2017-10-24

Standalone模式
在Spark Standalone模式中,spark叢集有Master節點和worker節點組成,使用者程式通過與master節點互動,申請所需的資源,Worker節點負責具體executor的啟動執行。
以WordCount為例,Standalone模式下的應用程式的啟動命令如下
./bin/run-example org.apache.spark.examples.JavaWordCount spark://192.168.18.140:7077

內部實現原理
如圖,Standalone模式使用SparkDeploySchedulerBackend配合TaskSchedulerImp1工作,而SparkDeploySchedulerBackend本身擴充自CoarseGrainedSchedulerBackend.
CoarseGrainedSchedulerBackend是一個基於Akka Actor實現的粗粒度的資源排程類,在整個Spark作業執行期間,CoarseGrainedSchedulerBackend會監聽並持有註冊給它的executor資源,並且在接受executor註冊、狀態更新、相應Scheduler請求等各種時刻,根據現有Executor資源發起任務排程流程。
Executor本身是可以通過各種途徑啟動的,在Spark Standalone模式中,SparkDeploySchedulerBackend通過client類向Spark Master傳送請求,在獨立部署的spark叢集中啟動CoarseGrainedExecutorBackend,根據所需的CPU資源的數量,一個或多個CoarseGrainedExecutorBackend在Spark Worker節點上啟動並註冊給CoarseGrainedSchedulerBackend的Driver Actor
完成所需Actor的啟動後,任務排程就在CoarseGrainedSchedulerBackend和CoarseGrainedExecutorBackend的Actor之間直接完成
這裡寫圖片描述

相關文章