sparkの例をEclipse
から実行して、この一般的なエラーを取得しようとしています:Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources.
私が持っているバージョンはspark-1.6.2-bin-hadoop2.6.
始めましたspark ./sbin/start-master.sh
シェルからコマンドを実行し、次のようにsparkConf
を設定します。
SparkConf conf = new SparkConf().setAppName("Simple Application");
conf.setMaster("spark://My-Mac-mini.local:7077");
このエラーは、実行している例のいずれかでポップアップするため、他のコードはここに持ち込みません。マシンはMac OSXであり、最も単純な例を実行するのに十分なリソースがあると確信しています。
何が欠けていますか?
このエラーは、現在のジョブに対してクラスターのリソースが不十分であることを示しています。スレーブ、つまりworkerを開始していないためです。クラスターには、ジョブに割り当てるリソースがありません。スレーブの起動は機能します。
`start-slave.sh <spark://master-ip:7077>`
私も同じ問題を抱えていました、そしてそれは労働者が運転手とコミュニケーションをとることができなかったからでした。
ドライバーからspark.driver.port
にspark.driver.Host
(およびドライバーの上記のポートを開く)、spark.driver.bindAddress
およびspark-submit
を設定する必要があります。
あなたの答えへのソリューション
理由
修正
結論
別の方法
IDEでアプリケーションを実行しようとし、ワーカーに無料のリソースがある場合、これを行う必要があります。
1)何よりもまず、ワーカーとマスターsparkノードを構成します。
2)ワーカーから計算値を返すドライバー(PC)構成を指定します。
SparkConf conf = new SparkConf()
.setAppName("Test spark")
.setMaster("spark://ip of your master node:port of your master node")
.set("spark.blockManager.port", "10025")
.set("spark.driver.blockManager.port", "10026")
.set("spark.driver.port", "10027") //make all communication ports static (not necessary if you disabled firewalls, or if your nodes located in local network, otherwise you must open this ports in firewall settings)
.set("spark.cores.max", "12")
.set("spark.executor.memory", "2g")
.set("spark.driver.Host", "ip of your driver (PC)"); //(necessary)