Как предотвратить искупление исполнителей искры при использовании режима клиента YARN?
Привет, У меня есть одно задание Spark, которое выполняется нормально локально с меньшим количеством данных, но когда я планирую его на YARN для выполнения, я продолжаю получать следующую ОШИБКУ, и медленно все исполнители удаляются из пользовательского интерфейса, и моя работа завершается
15/07/30 10:18:13 ERROR cluster.YarnScheduler: Lost executor 8 on myhost1.com: remote Rpc client disassociated
15/07/30 10:18:13 ERROR cluster.YarnScheduler: Lost executor 6 on myhost2.com: remote Rpc client disassociated
Я использую следующую команду, чтобы запланировать искровое задание в режиме пряжи-клиента
./spark-submit --class com.xyz.MySpark --conf "spark.executor.extraJavaOptions=-XX:MaxPermSize=512M" --driver-java-options -XX:MaxPermSize=512m --driver-memory 3g --master yarn-client --executor-memory 2G --executor-cores 8 --num-executors 12 /home/myuser/myspark-1.0.jar
Я не знаю, в чем проблема, пожалуйста, посоветуйте. Я новичок в Spark. Спасибо заранее.
Ответы
Ответ 1
У меня была очень похожая проблема. У меня было много исполнителей, которые терялись независимо от того, сколько памяти мы им выделили.
Решение, если вы используете пряжу, заключалось в установке --conf spark.yarn.executor.memoryOverhead=600
, альтернативно, если ваш кластер использует mesos, вы можете попробовать --conf spark.mesos.executor.memoryOverhead=600
вместо этого.
Похоже, мы не оставляли достаточной памяти для самого ЯРН и из-за этого погибали контейнеры. После установки у нас были разные ошибки в памяти, но не такая же потерянная проблема с исполнителем.
Ответ 2
Я тоже столкнулся с той же проблемой. Для меня удаление журналов и освобождение большего количества пространства hdfs.