Flink 狀態與容錯 ( state 和 Fault Tolerance)
阿新 • • 發佈:2019-02-07
Flink 狀態與容錯
狀態性的函式和操作通過處理單個(元素/事件)儲存資料,使任何型別的state構建更復雜的操作。
例如:
- 當應用程式針對特定事件模式進行搜尋的時候,state將會儲存到目前為止的一些列事件。
- 當每 分鐘/小時/天 聚合事件的時候,state會持有所有等待聚合的資料。
- 當在一連串的資料流上訓練機器學習模型時,state持有當前版本的模型引數。
- 當歷史資料需要管理的時候,state允許高效的訪問過去的資料
flink可以使用checkpoints對statue進行容錯管理,並且允許對流應用程式執行savepoint。
瞭解到應用程式的state可以重新調節,意味著flink負責重新分配並行例項的狀態。
Flink的queryable state允許你在flink執行時從外部接收state資料。
在工作的時候使用state,建議閱讀Flink's state backends。flink提供了不同的state backends 來指定如何儲存和把state資料儲存在哪。State可以存在於java堆中。依賴於你的state backends,flink還可以管理應用程式的狀態,意味著flink可以通過記憶體管理(必要時可以溢位到磁碟)來執行應用儲存非常大的state。state backends 可以在不改變應用程式的邏輯的情況下進行配置。
後面會有對應的專題文章解釋下面的內容
- working with state:在flink應用中展示瞭如何使用state,並解釋了不同型別的狀態
- checkpointing:描述瞭如何啟動和配置容錯的檢查點
- queryable state:解釋如何在執行時訪問flink以外的state
- custom serialization for managed state:討論了state的自定義序列化邏輯和它的升級