Flink 之 KeyedState 的使用

2021-10-07 16:40:35 字數 864 閱讀 4861

場景:

不使用 flink 提供的 sum() 方法,使用 keyedstate 完成對單詞分組求和計算操作。

**:/**

* todo 不使用 flink 提供的sum()方法,對單詞進行分組求和計算。

** @author liuzebiao

* @date 2020-2-17 11:42

*/public class keyedstatedemo

});//進行分組聚合(keyby:將key相同的分到乙個組中)

keyedstream, tuple> keyedstream = wordandone.keyby(0);

/** 使用 keyedstate 通過中間狀態求和  ----- start ----**/

singleoutputstreamoperator> summed = keyedstream.map(new richmapfunction, tuple2>()

@override

public tuple2map(tuple2tuple2) throws exception else

return tuple2.of(word,valuestate.value());

}});

/** 使用 keyedstate 通過中間狀態求和  ----- end ----**/

//transformation 結束

//3.呼叫sink (sink必須呼叫)

summed.print();

//啟動(這個異常不建議try...catch... 捕獲,因為它會拋給上層flink,flink根據異常來做相應的重啟策略等處理)

env.execute("keyedstatedemo");}}

Flink集群之Flink集群配置優化項

jobmanager rpc通訊位址,一般需要配置指定的jobmanager的ip位址,預設的localhost不適合多節點集群模式 jobmanager的jvm堆記憶體,預設為1024m,可以根據集群規模適當增加 taskmanager的jvm堆記憶體,預設為1024m,可以根據資料計算規模以及狀...

Flink之四 容錯機制

批處理系統比較容易實現容錯機制,由於檔案可以重複訪問,當某個任務失敗後,重啟該任務即可。但是在流處理系統中,由於資料來源是無限的資料流,乙個流處理任務甚至可能會執行幾個月,將所有資料快取或是持久化,留待以後重複訪問基本上是不可行的。flink基於分布式快照與可部分重發的資料來源實現了容錯,使用者可自...

Flink核心概念之window

計數視窗 1 windowall就是把所有資料弄到乙個slot處理,並行度始終為1 2 keyby會把資料分到不同的slot,keyby.window可以設定並行度 package com.fouth sink import org.apache.flink.streaming.api.functi...