问题描述:flume采集到hdfs上的文件一直不关闭,有tmp后缀,hive读不到

原配置:

 # 当前文件写入达到该值时间后触发滚动创建新文件,单位:秒,设置为24小时防止产生小文件
 ex_trade_agent.sinks.k1.hdfs.rollInterval = 86400
 # 当前文件写入达到该大小后触发滚动创建新文件,单位:字节,设置为128M
 ex_trade_agent.sinks.k1.hdfs.rollSize = 134217700
 # 向 HDFS 写入内容时每次批量操作的 Event 数量
 ex_trade_agent.sinks.k1.hdfs.batchSize = 2000
 # 不根据 Event 数量来分割文件
 ex_trade_agent.sinks.k1.hdfs.rollCount = 0

可以看到只按照128m和24小时来判断是否写新文件,如果两者都不满足那就不关闭临时文件

解决方案:

 # 当前文件写入达到该值时间后触发滚动创建新文件,单位:秒,设置为4小时防止产生小文件
 ex_trade_agent.sinks.k1.hdfs.rollInterval = 14400
 # 当非活动文件超过4小时,关闭该文件
 ex_trade_agent.sinks.k1.hdfs.idleTimeout = 14400