Пропуск партий в процессе искровой структурированной потоковой передачи
У меня есть потоковая работа с искровым структурированием, которая использует события из службы Azure Hubs. В некоторых случаях случается, что некоторые пакеты не обрабатываются потоковым заданием. В этом случае в журнале структурированной потоковой передачи можно увидеть следующую инструкцию регистрации:
ИНФОРМАЦИЯ FileStreamSink: пропуск уже принятого пакета 25
задание потоковой передачи сохраняет входящие события в Azure Datalake, поэтому я могу проверить, какие события действительно были обработаны / сохранены. Когда вышеупомянутый пропуск происходит, эти события отсутствуют!
Мне непонятно, почему эти партии помечены как уже принятые, потому что в итоге кажется, что они не были обработаны!
У вас есть идея, что может вызвать такое поведение?
Спасибо!
1 ответ
Я мог бы решить проблему. Проблема заключалась в том, что у меня было два разных потоковых задания, которые имели разные местоположения контрольных точек (что правильно), но использовали одну и ту же базовую папку для их вывода. Но в выходной папке также сохранена метаинформация, поэтому два потока поделились информацией, какие пакеты они уже зафиксировали. После использования другой базовой выходной папки проблема была исправлена.
У нас была такая же проблема, и брокер Kafka уже удалил данные. Итак, чтобы заставить приложение Spark запускаться с самого начала (последнее смещение в Kafka), мы удалили какcheckpoint
а также _spark_metadata
каталоги. Ты можешь найти_spark_metadata
по тому же пути, по которому вы пишете поток.