Wie kann ein Offset im Spark Kafka-Direktstreaming manuell festgeschrieben werden?

Ich habe mich intensiv umgesehen, aber keine zufriedenstellende Antwort darauf gefunden. Vielleicht fehlt mir etwas. Bitte helfen Sie.

Wir haben eine Spark-Streaming-Anwendung, die ein Kafka-Thema verwendet und die End-to-End-Verarbeitung sicherstellen muss, bevor Kafka-Offsets vorangebracht werden, z. Aktualisieren einer Datenbank. Dies ähnelt dem Aufbau der Transaktionsunterstützung im Streaming-System und dem Gewährleisten, dass jede Nachricht verarbeitet (transformiert) und, was noch wichtiger ist, ausgegeben wird.

Ich habe über Kafka DirectStreams gelesen. Es heißt, dass für eine robuste Fehlerbehebung im DirectStreaming-Modus das Spark-Checkpointing aktiviert sein solltspeichert die Offsets zusammen mit den Checkpoints. Die Offset-Verwaltung erfolgt jedoch intern (Einstellen von Kafka-Konfigurationsparametern wie "auto.offset.reset", "auto.commit.enable", "auto.offset.interval.ms"]). Es geht nicht darum, wie (oder ob) wir Commit-Offsets anpassen können (z. B. nachdem wir eine Datenbank geladen haben). Mit anderen Worten, können wir @ setz"auto.commit.enable" falsch und die Offsets verwalten (nicht anders als eine DB-Verbindung) uns?

Jede Anleitung / Hilfe wird sehr geschätzt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage