私は仕事を開始する方法を十分に理解していないと思います。並列スパークジョブを起動するには?
私は1つのジョブが完了するのに60秒かかる。私は、次のコマンドでそれを実行します。
spark-submit --executor-cores 1 \
--executor-memory 1g \
--driver-memory 1g \
--master yarn \
--deploy-mode cluster \
--conf spark.dynamicAllocation.enabled=true \
--conf spark.shuffle.service.enabled=true \
--conf spark.dynamicAllocation.minExecutors=1 \
--conf spark.dynamicAllocation.maxExecutors=4 \
--conf spark.dynamicAllocation.initialExecutors=4 \
--conf spark.executor.instances=4 \
私はエグゼキュータのコードと番号からパーティションの数を増やす場合はアプリが、それは大丈夫だた、より速く終了します。しかし、私がexecutor-coreだけを増やしても、終了時間は同じです。なぜか分かりません。私は時間が最初の時間よりも短くなると期待しています。
私の2番目の問題は、上記のコードを2回実行すると、両方のジョブが60秒で終了すると予想されますが、これは起こりません。両方の仕事は120秒後に終了し、なぜ私は理解していません。
このコードはAWS EMR上で2回実行されます(それぞれ4 cpu、各cpuには2つのスレッドがあります)。デフォルトのEMR設定で見たものから、糸はCapacitySchedulerでFIFO(デフォルト)モードに設定されています。
この問題についてどう思いますか?