一、應用場景:
Flink 消費 Kafka 數據進行實時處理,並將結果寫入 HDFS。
二、Bucketing File Sink
由於流數據本身是無界的,所以,流數據將數據寫入到分桶(bucket)中。默認使用基於系統時間(yyyy-MM-dd--HH,0時區)的分桶策略。在分桶中,又根據滾動策略,將輸出拆分爲 part 文件。
1、Flink 提供了兩個分桶策略,分桶策略實現了
org.apache.flink.streaming.connectors.fs.bucketing.Bucketer 接口:
- BasePathBucketer,不分桶,所有文件寫到根目錄;
- DateTimeBucketer,基於系統時間(yyyy-MM-dd--HH)分桶。
除此之外,還可以實現Bucketer接口,自定義分桶策略。
2、Flink 提供了兩種writer方式,它們實現了
org.apache.flink.streaming.connectors.fs.Writer 接口:
- StringWriter 是系統默認的寫入方式,調用toString()方法,同時換行寫入;
- SequenceFileWriter 是Hadoop序列文件寫入方式,可配置壓縮。
除此之外,還可以實現Writer接口,自定義Writer方式。
三、編碼。
1、pom添加依賴。
<dep