Flink 寫入HDFS - 使用 BucketingSink

一、應用場景:

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章