Spark應用的結構的學習

關注公衆號:分享電腦學習
回覆"百度雲盤" 可以免費獲取所有學習文檔的代碼(不定期更新)

承接上一篇文檔《Standalone集羣搭建和Spark應用監控

需要了解的概念

一、Spark應用的結構(Driver + Executors)

(一)、Driver:相當於MapReduce中ApplicationMaster,運行SparkContext上下文、SparkContext進行初始化的地方(JVM)、進行RDD的初始化、Task運行的資源申請、調度的地方,一般認爲就是main運行的地方

(二)、Executors:具體的Task運行的地方,一個executor可以運行多個Task任務,一個spark應用可以有多個Executor

Spark應用的結構的學習

 

練習:

1、 local模式下沒有啓動SparkShell的情況下查看jps

 

Spark應用的結構的學習

 

2、 local模式下啓動SparkShell的情況下查看jps

Spark應用的結構的學習

 

Spark應用的結構的學習

 

3、 啓動集羣模式查看jps

Spark應用的結構的學習

 

Spark應用的結構的學習

 

結論:

1、local模式:driver和executor運行在同一個進程(SparkSubmit),以線程的方式進行區分的。

2、集羣模式:

Driver:SparkSubmit

Executor:CoarseGrainedExecutorBackend

 

練習:分別查看spark-shell和spark-submit命令可以找到下面的語句

1、 spark-shell底層運行的是spark-submit

Spark應用的結構的學習

 

2、 spark-submit底層執行的是spark-class

Spark應用的結構的學習

 

 

結論:每運行一個spark-submit,就相當於執行了一個Spark的Application

 

練習:

1、 執行詞頻統計前十(參考前面的課件)的語句(不執行collect),在瀏覽器查看ip:4040/jobs

Spark應用的結構的學習

 

Spark應用的結構的學習

 

2、 執行詞頻統計前十(參考前面的課件)的語句(執行collect),在瀏覽器查看ip:4040/jobs

Spark應用的結構的學習

 

Spark應用的結構的學習

 

Spark應用的結構的學習

 

 

3、 再執行一次上面的第二步,可以多運行幾次查看

 

結論:Application,一個應用包含多個job

 

練習:點擊ip:4040/jobs中的多個job,查看裏面的信息

Spark應用的結構的學習

 

結論:一個Job裏面包含多個Stage

 

練習:點擊ip:4040/jobs中的多個Stage,查看裏面的信息

Spark應用的結構的學習

 

Spark應用的結構的學習

 

結論:一個Stage裏面可以包含多個Task。可以在詞頻統計前十中調用partition,查看分區個數,分區多數多的話 就可以有多個Task了

 

其中上面的結論補充(詳細解釋在後面慢慢講解):

1、RDD的action類型的API一旦觸發就會產生一個job,比如collect、take(10)、

2、有shuffle操作就會劃分stage

3、Task就是最小的運行單位,是在executor處理對應分區數據的線程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章