State:指一個具體的Task/Operator的狀態。
State可以被記錄,在失敗的情況下數據還可以恢復,Flink中有兩種基本類型的State: Keyed State, Operator State。
Sate在數據在容錯恢復起了非常關鍵的作用 - Operator State Task里面沒有Shuffle操作的State,換句話說,就是沒有keyBy操作
1. Operator State是Task級別的state,就是每個Task對應一個State
2. Kafka Connector Source中的每個分區(Task)都需要記錄消費的Topic的Partition和Offset等信息,這些信息就是state。
- Keyed State表示和Key相關的一種State,基于KeyedStream上的狀態。Keyed State事先按照Key對數據集進行了分區,每個Key State僅對應一個Operator和Key的組合。Keyed State可以通過Key Groups進行管理,主要用于當算子并行度發生變化時,自動重新分布Keyed State數據。在系統運行過程種,一個Keyed算子實例可能運行一個或者多個Key Groups 的Keys