0

Hadoop と Spark-1.5.2 を実行している 3 台の macOS マシンのクラスターがあります (Spark-2.0.0 でも同じ問題が存在します)。「yarn」を Spark マスター URL として使用すると、タスクが 3 台のマシンのうち 2 台にしか割り当てられないという奇妙な問題が発生します。

Hadoop ダッシュボード (マスターのポート 8088) に基づいて、3 つのノードすべてがクラスターの一部であることは明らかです。ただし、実行する Spark ジョブはいずれも、2 つのエグゼキューターしか使用しません。

たとえば、JavaWordCount の例を長時間実行した場合の「Executors」タブは次のとおりです。 ここに画像の説明を入力 「batservers」がマスターです。追加のスレーブ「batservers2」があるはずですが、そこにはありません。

これはなぜでしょうか?

YARN のリソース マネージャーとノード マネージャーに追加のメモリを与えるための規定を除いて、私の YARN または Spark (さらに言えば HDFS) の構成はどれも珍しいものではないことに注意してください。

4

1 に答える 1

0

驚くべきことに、spark-submit ヘルプ メッセージを詳細に調べるだけで、答えが見つかりました。

YARN のみ:

...

--num-executors NUM 起動するエグゼキューターの数 (デフォルト: 2 )。

--num-executors 3spark-submit コマンドで指定すると、3 番目のノードが使用されます。

于 2016-10-10T23:18:56.257 に答える