2016-01-21 118 views
6

我開始於AWS火花集羣,其中一個主站和60芯:Spark:驅動程序/工作者配置。驅動程序是否在主節點上運行?

enter image description here

這裏是啓動的命令,每個核心基本上2個執行人,完全120執行人:

spark-submit --deploy-mode cluster --master yarn-cluster --driver-memory 180g --driver-cores 26 --executor-memory 90g --executor-cores 13 --num-executors 120 

然而,在作業服務器,只有119執行人:

enter image description here

我認爲應該有1個司機+ 120名工人執行者。但是,我看到的是119名執行人員,其中包括1名司機+ 118名執行人員。

這是否意味着我的主節點沒有被使用?驅動程序是否在主節點或核心節點上運行?我可以讓驅動程序在主節點上運行,並讓60個核心託管120個工作執行者?

謝謝!

回答

1

當您運行紗線羣集模式時,應用程序的驅動程序在羣集中運行,而不是在您運行spark提交的機器上運行。這意味着它將佔用集羣上驅動程序核心的數量,從而導致您看到的119個執行程序。

如果您想在集羣外部運行驅動程序,請嘗試yarn-client模式。

更多關於紗線運行的詳細信息可以在這裏找到:http://spark.apache.org/docs/latest/running-on-yarn.html

+0

這是否意味着主節點不是集羣的一部分?那麼主節點做什麼? – Edamame

+0

sparkstandalone中的master(YARN中的資源管理器)僅用於將作業委派給工作人員並跟蹤羣集運行狀況等。您可以在與主服務器相同的方框上部署worker,但如果主節點是隻有服務,沒有執行者會在那裏運行。下面的拉文德拉的帖子有一個精確的架構圖。 –

+0

如果火花驅動程序應用程序正在運行的節點出現故障或重新啓動,Spark集羣模式下的集羣中的另一個工作節點上是否會自動啓動Spark驅動程序? – girip11

3

紗線集羣模式,駕駛者在應用程序主機運行。這意味着相同的進程負責驅動應用程序並從YARN請求資源,並且此進程在YARN容器內運行。啓動應用程序的客戶端在整個生命週期內都不需要停留。

enter image description here

紗線客戶模式,火花駕駛員發起的火花應用在客戶端進程內運行。

enter image description here

看一看cloudera博客瞭解更多詳情。

+0

然後在集羣模式下,主節點是集羣的一部分嗎?主節點在作業開始後會做什麼?它是空轉嗎? – Edamame

+0

是的。在集羣模式下,Spark驅動程序在由集羣上的YARN管理的應用程序主進程內運行,並且客戶端可以在啓動應用程序後離開。客戶可以離開,Master可以處理剩餘的任務。 –

+0

我的意思是主節點實例:cr1.8xlarge,是在那裏運行的應用程序主?如果是這樣,爲什麼在其他60個cr1.8xlarge實例中只有118個工作執行者,而不是120個工作執行者?謝謝! – Edamame

相關問題