Spark Streaming - кэширование / раскэширование нескольких фреймов данных, медленно увеличивая объем памяти - PullRequest
0 голосов
/ 03 мая 2020

У меня есть потоковое задание (Spark 2.4.5), в котором использование памяти у исполнителей постоянно увеличивается.

memory increase

Через несколько итерации, которые выпадают исполнителям (org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 6987) из-за нехватки памяти.

Executor list dead and active

Что потоковое задание выполняет в двух словах:

  • Агрегирует ввод, кэширует и не обрабатывает различные кадры данных
  • Сохраняет определенные кадры данных в HDFS (паркет)
  • Сохраняет определенные кадры данных в контрольные точки
  • Выполняет два pandas udf functions
  • Публикует сообщения обратно в Kafka

Я не уверен, есть ли в моей работе внутренняя проблема с дизайном, или в чем причина медленного, но неуклонного увеличения памяти и как Я мог бы избежать этого. Есть идеи?

...