2016-04-29 74 views
2

我有一個簡單的Spark羣集 - 一個主機和一個從機。工人是免費的,沒有繁忙的資源。Apache Spark:工作人員已連接並且空閒,但不接受任務

Web UI screenshot

但是當我嘗試執行任何應用程序(例如, 'sc.parallelize(1〜10).foreach(的println)' 火花殼)我看到以下錯誤:

WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources 

但是,當應用程序在與從屬服務器相同的服務器上啓動時,它會成功運行。看起來有些東西會聽錯網絡接口。

該配置是默認配置,由github的火花克隆。

我開始掌握以下方法:

[email protected] > ./sbin/start-master.sh -h 192.168.111.204 

奴:

[email protected] > ./sbin/start-slave.sh spark://192.168.111.204:7077 -h 192.168.111.230 

應用:

[email protected] > ./bin/spark-shell --master spark://192.168.111.204:7077 

我應該怎麼檢查?

UPD:剛試過兩臺虛擬機一樣。工作正常。也許服務器與主機名有一些問題。

回答

0

謝謝大家,問題解決了。正如我之前猜測的,網絡是一個麻煩的原因。

當spark-shell和spark-submit開始時,它們會打開一個端口來偵聽。然而,我沒有找到一個標誌爲此目的指定一個主機。於是,他們開始監聽外部接口,即防火牆阻止的端口。我有以下行添加到的conf/spark-env.sh

export SPARK_LOCAL_IP=192.168.111.229 
0

有幾件事情,你可以嘗試:

也許出於某種原因,奴隸沒有被分配任何核心,嘗試用-c開始奴隸。

-c CORES, --cores CORES Total CPU cores to allow Spark applications 
    to use on the machine (default: all available); only on worker 
+0

我已經試過了。沒有結果。無論如何,WebUI顯示有很多資源。 –