Продолжают ли потоковые приемники Spark получать данные для каждого интервала блока в течение текущего микропакета? - PullRequest
0 голосов
/ 22 апреля 2020

Для каждого получателя spark.streaming.blockInterval (скажем, 1 минута) прослушивают потоковые источники данных. Предположим, что текущая микропакета занимает неестественно много времени для завершения (намеренно, скажем, 20 минут). Во время этого микропакета получатели все еще будут прослушивать потоковый источник и сохранять его в памяти Spark?

Текущий конвейер работает в Azure блоках данных с использованием структурированной потоковой передачи Spark. Может ли кто-нибудь помочь мне понять это!

1 Ответ

0 голосов
/ 22 апреля 2020

При описанном выше сценарии Spark будет продолжать получать / извлекать данные из Kafka, а микропакеты будут продолжать накапливаться и в конечном итоге приводить к проблемам нехватки памяти (OOM). Чтобы избежать сценария, включите настройку противодавления,

spark.streaming.backpressure.enabled = true

https://spark.apache.org/docs/latest/streaming-programming-guide.html

Подробнее о функции противодавления в искре

...