由于官方的1.8版本hdfs-sink不能在每天的0点滚动文件,所以修改了flume-hdfs-sink源码。
flume-hdfs-sink中修改了HDFSEventSink.java文件,其他文件未改动。
使用该程序打包,替换掉官方到flume-hdfs-sink.jar(建议备份一份), 也可以直接下载编译后的jjar包。
然后在配置hdfsSink时增加以下配置项
timeRollerFlag | 默认值: day 可以设置minutes, hour, day minutes 每分钟滚动文件 hour 每小时滚动文件 day 每天0点滚动文件 |
hdfsSink的配置如下:
paas2.sinks.k1.type = hdfspaas2.sinks.k1.hdfs.path = hdfs://ns1/user/hive/warehouse/dw_stg.db/tg_paas_business/dt=%Y%m%dpaas2.sinks.k1.hdfs.filePrefix = paas_business_%Y%m%dpaas2.sinks.k1.hdfs.fileSuffix = .jsonpaas2.sinks.k1.hdfs.rollInterval = 0paas2.sinks.k1.hdfs.rollCount = 0paas2.sinks.k1.hdfs.round = falsepaas2.sinks.k1.hdfs.roundValue=12paas2.sinks.k1.hdfs.roundUnit=hourpaas2.sinks.k1.hdfs.rollSize = 134217728paas2.sinks.k1.hdfs.fileType = DataStreampaas2.sinks.k1.hdfs.timeRollerFlag=day
源程序gitee地址如下:
编译后的jar包如下地址: