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