2016-12-14 118 views
2

我創建了一個Spark WordCount應用程序,我在本地模式下在shell中使用​​命令運行。如何在集羣模式下將Spark應用程序提交到YARN?

當我嘗試使用該命令在紗線cluster模式來運行它:

spark-submit --class com.WordCount --master yarn --deploy-mode cluster WordCount-1.0.jar 

它似乎並沒有被運行,顯示狀態爲:對application_1480577073003_0019

申請報告(州:ACCEPTED)

如何將​​Spark應用程序集羣模式下的YARN?

+1

檢查所有作業的要求是提供紗,像執行人,內核等的數 – Chobeat

回答

0

此問題的原因是您的應用程序/驅動程序正在請求比當時羣集中的可用資源更多的資源。

由於您尚未指定任何資源參數,驅動程序將使用默認值請求資源。這意味着您的羣集無法提供資源。

可能的原因:

  1. 您的羣集沒有足夠的內存/核心執行者(默認1GB,1core)
  2. 你的集羣有足夠的內存/核心執行者,但他們被分配到一些其他工作。

解決方案:

  1. 要麼減少執行存儲器/核請求的默認值,或增加每根紗線容器內存/核
  2. 通過添加更多的執行器增加羣集資源或等待其他作業完成[或殺死他們,如果你不喜歡這些工作;)
0

後您spark-submit --deploy-mode cluster你的星火應用中,博士iver和執行者在集羣的節點上。

Spark's official documentation

部署模式辨驅動程序進程運行在哪裏。在「集羣」模式下,框架在集羣內部啓動驅動程序。在「客戶端」模式下,提交者在集羣外部啓動驅動程序。

你會得到應用程序ID是你的應用程序的句柄。

您應該使用yarn application -status命令來檢查Spark應用程序的狀態。

-status打印應用程序的狀態。

相關問題