Spark開發-Local模式

Xlucas發表於2017-10-24

部署及程式執行
Local模式,就是執行在本地,如果不加任何配置,Spark模式設定為Local模式,以WordCount為例,Local模式下的應用程式的啟動命令如下
./bin/run-example org.apache.spark.examples.JavaWordCount local
在WordCount程式碼的具體實現中,是根據使用者傳入的引數來選擇執行的模式的,如果需要自己在程式碼中指定執行模式,可以通過在程式碼中配置Master為local來實現
val conf=new SparkConf();//建立SparkConf物件
conf.setAppName(“WordCount”)//設定應用程式的名稱,在程式執行的監控介面可以看到這個名
conf.setMaster(“local”) //此時,程式在本地執行,不需要安裝spark叢集
當然,為了使應用程式能夠更靈活地在各種部署環境下使用,不建議把與執行環境相關的設定直接在程式碼中寫死。

內部實現原理
Local本地模式使用LocalBackend配置TaskSchedulerImp1,內部邏輯結構如下

這裡寫圖片描述

LocalBackend相應Scheduler的ReviveOffers請求,根據可用的CPU核的設定值[N]直接生成CPU資源返回給Scheduler,並通過Executor類線上程池中依次啟動和執行Scheduler返回的任務列表,其核心事件迴圈由內部類LocalActor以Akka Actor的訊息處理形式來實現
因為Local模式無須配置,同時所有的程式碼都在本地程式中執行,所以常常可以作為快速驗證程式碼和跟蹤除錯的手段

相關文章