6

次の設定で、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が効果がないのはなぜですか?

4

3 に答える 3

7

わかりました、ここで説明したのと同じ問題のようです:糸はyarn.nodemanager.resource.cpu-vcoresを尊重していません 解決策も私のために働きました.

于 2016-07-14T08:45:35.757 に答える