问题描述: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