我環顧四周,但沒有找到令人滿意的答案。也許我錯過了一些東西。請幫忙。如何在Spark Kafka直接流式傳輸中手動提交偏移量?
我們有一個消耗Kafka主題的Spark流應用程序,它需要在推進Kafka偏移之前確保端到端處理,例如,更新數據庫。這非常類似於在流式傳輸系統中構建事務支持,並且保證每個消息都被處理(轉換),更重要的是輸出。
我已閱讀關於Kafka DirectStreams。它表示,爲了在DirectStreaming模式下進行強健的故障恢復,應啓用Spark檢查點,其中stores the offsets along with the checkpoints。但偏移管理是在內部完成的(設置Kafka配置參數,如["auto.offset.reset", "auto.commit.enable", "auto.offset.interval.ms"
])。它沒有說明我們可以如何(或如果)自定義提交偏移量(例如,我們已經加載數據庫,例如)。換句話說,我們可以將"auto.commit.enable"
設置爲false,並自己管理偏移量(與數據庫連接不同)嗎?
任何指導/幫助非常感謝。
https://spark.apache.org/docs/2.2.0/streaming-kafka-0-10-integration.html#kafka-itself – void