spark WARNTaskSchedulerImpl:Initial job has not accepted any resources; check your cluster UI to
阿新 • • 發佈:2019-02-16
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
SPARK_MASTER_IP
.
檢視8080埠,確保一些workers保持Alive狀態,確保 some cores 是可利用的。
3.driver在不停地工作,一直處於running狀態,而從前端8080頁面又可看出程式的狀態一直是WAITING。submit所在的shell輸出driver資訊後便退出了,目前還未得到程式執行結果,這顯然是因為該程式處於WAITING狀態,還未執行。而導致這一結果,應該跟日誌的輸出有關。值得一提的是,到目前為止,出了更改了對master ip和port的配置以及worker的配置外,其他深入的配置還需進一步研究。