2015-10-28 78 views
1

我們有一個簡單的火花流媒體應用,通過火花流從卡夫卡事件,並持續到Redis的這一點。卡夫卡 - 星火直接流故障轉移

最初我們使用Receiver-based Approach,它複製分批進入HDFS,之後開始處理。這種方法並不像我們所希望的那樣穩定(我們的hadoop機器上很多流量),所以我們在火花流內切換到Direct Approach (No Receivers)

令我困惑的是auto.offset.reset參數在文檔中提到。當一份工作失敗或者火花管理員失敗時,我們會看到流程工作通過處理大量事件並隨後穩定加班而迎頭趕上。

第二種方法我們不再看到這種行爲,我們不確定火花流是否真的趕上或剛開始auto.offset.resetlatest

latest用於故障切換一個合理的默認,並做了數據流作業,真正正確地趕上上重啓/主失敗?

感謝, 繆奇

回答

2

時沒有初始的動物園管理員或者如果 偏移偏移做的是超出範圍:

  • 最小:自動復位偏移到最小偏移
  • 最大:自動復位偏移量最大偏移
  • 別的:拋出異常給消費者。如果設置爲最大,那麼在其訂閱的主題的 分區的數量在代理上發生變化時,消費者可能會丟失一些消息。爲了 防止數據丟失的分區添加過程中,設置auto.offset.reset到 最小

這個選項只發生當您運行工作第一次 或當一些消息到期,最後提交的偏移您的消費者不再存在。

所以,最小的是最好,如果你不希望丟失數據。如果您在數據到期時間內重新啓動作業,則此選項不會影響您的故障轉移/重啓

相關問題