我想我不明白如何發佈工作。如何啓動並行火花作業?
我有一項工作需要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-cores,結束時間是一樣的,我不明白爲什麼。我預計時間會低於初始時間。
我的第二個問題是,如果我啓動兩次以上的代碼,我希望這兩個作業在60秒內完成,但這不會發生。兩個工作120秒後完成,我不明白爲什麼。
我在AWS EMR上運行此代碼,在2個實例上(每個4 cpu,每個cpu有2個線程)。從我在默認EMR配置中看到的,使用CapacityScheduler將紗線設置爲FIFO(默認)模式。
您對這個問題有什麼看法?