Сбой контейнера YARN с кодом ошибки -104 и 143 в задании spark

#pyspark #hadoop-yarn

#pyspark #hadoop-yarn

Вопрос:

Я запускаю задание отправки spark, используя рабочий процесс oozie на платформе cloudera 6.2.1. Но происходит сбой контейнера YARN с кодом ошибки -104 и 143. Ниже приведен фрагмент журнала

 Application application_1596360900040_33869 failed 2 times due to AM Container for appattempt_1596360900040_33869_000002 exited with  exitCode: -104
…………………………………………………………………………………………………………………………………………………………
…………………some more logs printing jar dependencies…………………………
………………………………………………………………………………………………………………………………………………………………
1001/lib/hadoop/client/xz-1.6.jar:/opt/cloudera/parcels/CDH-6.2.1-1.cdh6.2.1.p3757.1951001/lib/hadoop/client/xz.jar -Xmx8G org.apache.spark.deploy.SparkSubmit --master yarn --deploy-mode client --conf spark.yarn.am.memory=8G --conf spark.driver.memory=8G --conf spark.yarn.am.memoryOverhead=820 --conf spark.driver.memoryOverhead=820 --conf spark.executor.memoryOverhead=3280 --conf spark.sql.broadcastTimeout=3600 --num-executors 4 --executor-cores 8 --executor-memory 16G --principal username --keytab username.keytab main.py
[2020-08-14 05:30:26.153]Container killed on request. Exit code is 143
[2020-08-14 05:30:26.167]Container exited with a non-zero exit code 143.

  

Параметры отправки Spark похожи на приведенные ниже

 spark2-submit 
--master yarn 
--deploy-mode client 
--num-executors 4 
--executor-cores 8 
--executor-memory 16G 
--driver-memory 8G 
--principal ${user_name} 
--keytab ${user_name}.keytab 
--conf spark.sql.broadcastTimeout=3600 
--conf spark.executor.memoryOverhead=3280 
--conf spark.driver.memoryOverhead=820 
--conf spark.yarn.am.memory=8G 
--conf spark.yarn.am.memoryOverhead=820 
main.py 

  

Я пробовал разные комбинации для исполнителя, драйвера и основной памяти приложения, но все они приводят к одной и той же ошибке.

Ответ №1:

Проблема устраняется путем изменения режима развертывания с клиента на кластер. Я запускаю задание spark из приложения oozie. Таким образом, в клиентском режиме драйвер запустится на oozie JVM. Чтобы избежать этого, я установил режим кластеризации.