簡體   English   中英

火花錯誤:初始作業未接受任何資源; 檢查您的集群用戶界面,以確保工作人員已注冊並擁有足夠的資源

[英]Spark error: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

我有一個虛擬機,其中以獨立模式安裝了spark-2.0.0-bin-hadoop2.7。

我運行./sbin/start-all.sh來運行主服務器和從服務器。

當我執行./bin/spark-shell --master spark://192.168.43.27:7077 --driver-memory 600m --executor-memory 600m --executor-cores 1機器本身時,任務的狀態為RUNNING和我能夠在Spark Shell中計算代碼。

在虛擬機中運行Spark Shell

當我從網絡中的另一台計算機執行完全相同的命令時,狀態再次為“ RUNNING”,但是火花外殼拋出WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources 我猜問題不與資源直接相關,因為同一命令在虛擬機本身中起作用,但在其他機器上卻不起作用。

通過網絡中的另一台機器跑了火花殼

我檢查了與此錯誤有關的大多數主題,但沒有一個解決了我的問題。 我什至用sudo ufw disable禁用了防火牆,只是為了確保但沒有成功(基於此鏈接 ),這表明:

在客戶端上禁用防火牆:這是對我有用的解決方案。 由於我正在開發內部原型代碼,因此我禁用了客戶端節點上的防火牆。 由於某些原因,工作節點無法為我與客戶進行回覆。 為了生產目的,您需要打開一定數量的端口。

有兩個已知的原因:

  1. 您的應用程序需要的資源(核心,內存)比分配的更多。 增加工作人員核心和內存應該可以解決此問題。 大多數其他答案都集中於此。

  2. 在鮮為人知的地方,防火牆阻止了主服務器與工作服務器之間的通信。 尤其是在使用雲服務時,可能會發生這種情況。 根據Spark Security的說明 ,除了標准的SPARK_WORKER_PORT端口外,還需要確保主服務器和工作服務器可以通過SPARK_WORKER_PORTspark.driver.portspark.blockManager.port 后三個用於提交作業,並且由程序隨機分配(如果未配置)。 您可以嘗試打開所有端口以運行快速測試。

添加@ Fountaine007的第一個項目符號示例。

我遇到了同樣的問題,這是因為分配的vcore小於應用程序的預期。

對於我的特定情況,我增加了$HADOOP_HOME/etc/hadoop/yarn-site.xml下的yarn.nodemanager.resource.cpu-vcores的值。

對於與內存相關的問題,您可能還需要修改yarn.nodemanager.resource.memory-mb

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM