Я использую Spark 2.4.5 с Kafka и Spark checkpoint. Я написал приложение для структурированной потоковой передачи Spark, в котором источником является Kafka, а приемником - пользовательский logi c с использованием ForeachWriter.
ForeachWriter имеет 3 метода. открыть, обработать и закрыть. Я инициализирую объекты подключения и инициализирую другие объекты, которые могут выйти из строя по разным причинам. Если происходит такой сбой, я возвращаю false из открытого метода. Когда в открытом методе возвращается false, я заметил, что смещение Kafka увеличивается.
Это настоящий облом. Даже в документации нет упоминания о том, что произойдет, когда метод open вернет false.
- Сталкивался ли кто-нибудь с такими проблемами, и как они оттуда исправились?