我想我不明白如何发布工作。如何启动并行火花作业?
我有一项工作需要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(默认)模式。
您对这个问题有什么看法?