Сбой задачи - запись DF в таблицу - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь сохранить фрейм данных в таблицу Hive.Но этот процесс занимает слишком много времени, и, в конце концов, он терпит неудачу, теряя ранее много задач из-за проблем с памятью.

DF разделен на несколько столбцов, чтобы попытаться написать одновременно больше исполнителей, а такжекэшируется в памяти.Он не особо большой и не усложняет операции, совершаемые для его получения.

· Код: Код

· план выполнения : enter image description here

· Ошибки : Отслеживание исполнителя

# java.lang.OutOfMemoryError: GC overhead limit exceeded
# -XX:OnOutOfMemoryError="kill %p"
#   Executing /bin/sh -c "kill 24077"...

enter image description here

· Точка :

Почему у меня так много неудачных задач при выполнении программы с этими ресурсами:

--master yarn --deploy-mode client --driver-memory 20G --executor-memory 20G --num-executors 50 --executor-cores 10 --conf spark.kryoserializer.buffer.max=2000m

Также, когда я запускаю программу через spark2-shell, она способна это сделать.Похоже, что когда я запускаю его с помощью spark-submit, он застревает при записи только с одним исполнителем, но, как я уже сказал, у меня много разделов, так зачем это делать?Что я делаю не так?

Любая помощь будет более чем признательна, заранее спасибо!;)

1 Ответ

0 голосов
/ 26 декабря 2018

Этот «java.lang.OutOfMemoryError: Превышен предел издержек GC» указывает, что вы должны настроить сборщик мусора для приложения, или у вас есть утечка памяти =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...