#apache-spark
#apache-spark
Вопрос:
Ниже приведена моя отправка spark
spark2-submit --class my.class
--master yarn
--deploy-mode cluster
--queue queue-name
--executor-memory 10G
--driver-memory 20G
--num-executors 60
--conf spark.executor.memoryOverhead=4G
--conf spark.yarn.maxAppAttempts=1
--conf spark.dynamicAllocation.maxExecutors=480
$HOME/myjar.jar param1 param2 param3
Ошибка
Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: Task 50 in stage 27.0 failed 4 times,
most recent failure: Lost task 50.4 in stage 27.0 (TID 20899, cdts13hdfc07p.rxcorp.com, executor 962):
ExecutorLostFailure (executor 962 exited caused by one of the running tasks) Reason: Container killed by YARN for exceeding memory limits.
15.7 GB of 14 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead.
Мои вопросы
- Я назначаю 10 ГБ памяти исполнителя, откуда берется 14 ГБ?
- Я уже упоминал 4G, который составляет 40% памяти исполнителя, но все же рекомендуется увеличить служебную память
Ответ №1:
Вы назначили 10 ГБ каждому исполнителю spark, вам нужно будет убедиться, что на компьютере / узле, на котором запущены исполнители, достаточно ресурсов для других его нужд