Пропуск партий в процессе искровой структурированной потоковой передачи

У меня есть потоковая работа с искровым структурированием, которая использует события из службы Azure Hubs. В некоторых случаях случается, что некоторые пакеты не обрабатываются потоковым заданием. В этом случае в журнале структурированной потоковой передачи можно увидеть следующую инструкцию регистрации:

ИНФОРМАЦИЯ FileStreamSink: пропуск уже принятого пакета 25

задание потоковой передачи сохраняет входящие события в Azure Datalake, поэтому я могу проверить, какие события действительно были обработаны / сохранены. Когда вышеупомянутый пропуск происходит, эти события отсутствуют!

Мне непонятно, почему эти партии помечены как уже принятые, потому что в итоге кажется, что они не были обработаны!

У вас есть идея, что может вызвать такое поведение?

Спасибо!

1 ответ

Решение

Я мог бы решить проблему. Проблема заключалась в том, что у меня было два разных потоковых задания, которые имели разные местоположения контрольных точек (что правильно), но использовали одну и ту же базовую папку для их вывода. Но в выходной папке также сохранена метаинформация, поэтому два потока поделились информацией, какие пакеты они уже зафиксировали. После использования другой базовой выходной папки проблема была исправлена.

У нас была такая же проблема, и брокер Kafka уже удалил данные. Итак, чтобы заставить приложение Spark запускаться с самого начала (последнее смещение в Kafka), мы удалили какcheckpoint а также _spark_metadataкаталоги. Ты можешь найти_spark_metadata по тому же пути, по которому вы пишете поток.

Другие вопросы по тегам