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