- 使用Flume的HDFS Sink,将log文件中的数据写入HDFS,进到UI发现产生了大量的小文件,每个小文件都是
1K
多,而占一个128M
的block。
- 解决:关键是以下三个关键变量的配置,如果要按照某一项来,比如rollSize,则其他两项设为0。
Name | Default | Description |
---|---|---|
hdfs.rollInterval | 30 | 滚动当前文件前等待的秒数 ( 设为0 =从不根据时间间隔滚动 ) |
hdfs.rollSize | 1024 | 触发滚动的文件大小,以字节为单位 (设为0=从不基于文件大小滚动) |
hdfs.rollCount | 10 | 在滚动之前写入文件的事件数 (设为0 =从不根据事件数滚动) |
- 下面贴出 flume-smallHdfs.conf 中的配置信息,按照
10K
来滚动。
# agent的组件名称
a1.sources = r1
a1.channels