LoginSignup
3
0

More than 5 years have passed since last update.

Hiveのパーティションを10分単位で切るときのFlume設定

Last updated at Posted at 2018-11-28

Flumeのバージョンは1.8.0を想定。
公式リファレンスにも例が載っているが、sinkの設定で日付の丸めに関わるパラメータを設定する。
https://flume.apache.org/FlumeUserGuide.html

HDFS Sinkの場合 (external tableの作成時)

hdfs.round, hdfs.roundValue, hdfs.roundUnitの3つを設定する。以下、エージェントa1における設定例。

a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute

hdfs.round (デフォルトfalse) をtrueにすることで日付の丸め (round downするとあるので日本語的には切り捨てが正しいか) を有効化する。
hdfs.roundValueを10にすることでtimestampの切り捨て値を10にする。
hdfs.rountUnitをminuteにすることでtimestampの切り捨て単位を分にする。

これで、10分単位で切ったパーティションのフォルダに転送を設定できる。

a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M

Hive Sinkの場合

round, roundValue, roundUnitを設定する。以下、エージェントa1における設定例。

a1.sinks.k1.round = true
a1.sinks.k1.roundValue = 10
a1.sinks.k1.roundUnit = minute

それぞれ、HDFSの場合と同様である。
パーティションは以下のように記述する。

a1.sinks.k1.hive.partition = asia,%{country},%y-%m-%d-%H-%M
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0