Amazon EMR - время, необходимое для завершения кластера после последнего завершения задания - PullRequest
0 голосов
/ 18 мая 2018

Я запускаю кластер EMR со следующими характеристиками:

  • 1 главный узел m4.4large с хранилищем EBS 32 ГБ
  • 10 базовых узлов m4.4large с хранилищем EBS 1024 ГБ
  • Автоматическое завершение после последнего завершения задания

Связанное задание Spark.Он считывает данные с S3 и сохраняет выходные данные на S3.

После нескольких попыток выясняется, что каждый раз задание Spark завершается примерно через 1 час 15 минут (я вижу задания, выполненные в Spark Web UIи я вижу результат в S3, что хорошо).Но кластер EMR зависает от 20 до 30 минут перед выключением.В общем, это занимает 1 час 45 минут.

Почему кластер EMR требует столько времени для завершения после последнего завершения задания?

1 Ответ

0 голосов
/ 06 ноября 2018

У нас была похожая проблема - она ​​называлась spark.stop () и System.exit () в конце кода, задание выполнено (просматривало его в терминале), веб-интерфейс был закрыт, токен _SUCCESS былнаписано, и все же приложение просто сидело там и было помечено как завершенное только в Hadoop Resource Manager через 10-40 минут.

В результате возникла проблема с сетью, которую я исправил, увеличив следующее:

--conf spark.rpc.message.maxSize=512 (default: 128)
--conf spark.network.timeout=600 (default: 120s)
--conf spark.executor.heartbeatInterval=30s (default: 10s)

Один быстрый способ проверить это - просмотреть журналы исполнителя - мы увидели кучу следующих предупреждений, которые предупредили меня

yarn logs -applicationId <app_id> | grep WARN
...
WARN Executor: Issue communicating with driver in heartbeater
...