YarnAllocator и Yarn Resource Manager действовали настолько щедро, что запросили и дали больше, чем я положил в конфиг.Я попросил в общей сложности 72 контейнера, и это дало 133 контейнера.Я ожидаю, что YarnAllocator выделит только то, что я просил.Может кто-нибудь объяснить, пожалуйста, что произошло?
А вот запросы, захваченные из журналов
18/06/08 06:52:29 INFO yarn.YarnAllocator: Will request 72 executor container(s), each with 4 core(s) and 11264 MB memory (including 3072 MB of overhead)
18/06/08 06:52:29 INFO yarn.YarnAllocator: Submitted 72 unlocalized container requests.
...
18/06/08 06:52:30 INFO yarn.YarnAllocator: Will request 8 executor container(s), each with 4 core(s) and 11264 MB memory (including 3072 MB of overhead)
18/06/08 06:52:30 INFO yarn.YarnAllocator: Submitted 8 unlocalized container requests.
...
18/06/08 06:52:31 INFO yarn.YarnAllocator: Will request 53 executor container(s), each with 4 core(s) and 11264 MB memory (including 3072 MB of overhead)
18/06/08 06:52:32 INFO yarn.YarnAllocator: Submitted 53 unlocalized container requests.
Вот мой конфиг спарк:
--driver-memory 4g \
--executor-memory 8g \
--executor-cores 4 \
--num-executors 72 \
--conf spark.yarn.executor.memoryOverhead=3072 \
--conf spark.executor.extraJavaOptions="-XX:+UseG1GC" \
--conf spark.yarn.max.executor.failures=128 \
--conf spark.memory.fraction=0.1 \
--conf spark.rdd.compress=true \
--conf spark.shuffle.compress=true \
--conf spark.shuffle.service.enabled=true \
--conf spark.shuffle.spill.compress=true \
--conf spark.speculation=false \
--conf spark.task.maxFailures=1000 \
--conf spark.sql.codegen.wholeStage=false \
--conf spark.scheduler.listenerbus.eventqueue.size=100000 \
--conf spark.shuffle.service.enabled=false \