1. 程式人生 > >spark WARNTaskSchedulerImpl:Initial job has not accepted any resources; check your cluster UI to

spark WARNTaskSchedulerImpl:Initial job has not accepted any resources; check your cluster UI to

spark在提交任務時,出現如下錯誤:

15/03/26 22:29:36 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory
15/03/26 22:29:51 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory
15/03/26 22:30:06 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory
15/03/26 22:30:21 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory


從警告資訊上看,初始化job時沒有獲取到任何資源;提示檢查叢集,確保workers可以被註冊並有足夠的記憶體資源。

如上問題產生的原因是多方面的,可能原因如下:

1.因為提交任務的節點不能和spark工作節點互動,因為提交完任務後提交任務節點上會起一個程序,展示任務進度,大多埠為4044,工作節點需要反饋進度給該該埠,所以如果主機名或者IP在hosts中配置不正確。所以檢查下主機名和ip是否配置正確

2.有可能是記憶體不足

  檢查記憶體

   conf.set("spark.executor.memory", "3000m")

  Make sure to set SPARK_LOCAL_IP

 andSPARK_MASTER_IP.

  檢視8080埠,確保一些workers保持Alive狀態,確保 some cores 是可利用的。

3.driver在不停地工作,一直處於running狀態,而從前端8080頁面又可看出程式的狀態一直是WAITING。submit所在的shell輸出driver資訊後便退出了,目前還未得到程式執行結果,這顯然是因為該程式處於WAITING狀態,還未執行。而導致這一結果,應該跟日誌的輸出有關。值得一提的是,到目前為止,出了更改了對master ip和port的配置以及worker的配置外,其他深入的配置還需進一步研究。