Конфликт ресурсов Spark со структурированной потоковой передачей / проблема с памятью - PullRequest
0 голосов
/ 12 октября 2018

У нас есть потоковый поток Spark Structured, использующий mapGroupWithState.Через некоторое время стабильной обработки неожиданно каждая мини-партия начинает занимать 40 секунд.Подозрительно это выглядит примерно 40 секунд каждый раз.До этого партии занимали менее секунды.

Batches taking 40 seconds

При просмотре деталей для конкретной задачи большинство разделов обрабатываются очень быстро, но требуется несколькоровно 40 секунд:

enter image description here

ГХ выглядел нормально, поскольку данные обрабатывались быстро, но внезапно все ГХ и т. д. останавливаются (одновременно с40-секундный выпуск):

GC

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

enter image description here

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

1 Ответ

0 голосов
/ 14 октября 2018

Попробуйте выделить больше места для HEAP, чтобы увидеть, не слишком ли перегружен GC, и в этом случае у вас, скорее всего, возникнет проблема утечки памяти

Какую версию свечи вы использовали?Если в его искре 2.3.1 были известны проблема утечки FD , если вы читали данные из Kafka (что очень распространено), чтобы выяснить, не утечка ли вашей работы FD, взгляните на использование FD в контейнерепроцесс в подчиненном, обычно он должен быть очень стабильным, около 100-200, и просто обновить до версии 2.3.2 исправит эту проблему, я так удивлен, что эта проблема была настолько фундаментальной, но никогда не получала достаточной видимости

...