次の設定で、YARN クラスター (HDP 2.4) で Spark を使用しています。
- 1 マスターノード
- 64 GB RAM (50 GB 使用可能)
- 24コア(19コア使用可能)
- 5 スレーブノード
- それぞれ 64 GB RAM (50 GB 使用可能)
- 各24コア(19コア使用可能)
- 糸の設定
- すべてのコンテナのメモリ (1 つのホスト): 50 GB
- コンテナの最小サイズ = 2 GB
- 最大コンテナー サイズ = 50 GB
- 仮想コア = 19
- 最小 #vcores/コンテナー = 1
- 最大 #vcores/コンテナー = 19
コマンド YARN を使用して spark アプリケーションを実行するspark-submit --num-executors 30 --executor-cores 3 --executor-memory 7g --driver-cores 1 --driver-memory 1800m ...
と、次の設定で 31 個のコンテナー (各エグゼキューター プロセスに 1 つ + ドライバー プロセスに 1 つ) が作成されます。
- 正解: 1 コアと ~1800 MB の RAM を備えたマスター コンテナー
- 正解: それぞれ ~7 GB の RAM を持つ 30 個のスレーブ コンテナー
- BUT INCORRECT : YARN ResourceManager UI によると、各スレーブ コンテナーは 3 コアではなく1 コアでのみ実行されます (91 = 30 * 3 + 1 ではなく、使用中の 95 コアのうち 31 コアのみが表示されます)。以下のスクリーンショットを参照してください。
spark-submit
ここでの私の質問:パラメータ--executor-cores 3
が効果がないのはなぜですか?