一、完整报错
- 05 Nov 2022 15:25:03,244 WARN [hdfs-sink1-roll-timer-4] (org.apache.flume.sink.hdfs.BucketWriter$CloseHandler.close:396) - Closing file: /optics/order_prod/order/1h/20221105/07/flume-001.flumedata.1667604593615.gz.tmp failed. Will retry again in 180 seconds.
- java.nio.channels.ClosedChannelException
二、错误原因
- HDFS压力大,无法在指定时间范围内,成功关闭tmp文件
三、参数理解
- hdfs.callTimeout
- 默认值:10000
- 允许HDFS操作的毫秒数,例如:open,write, flush, close。如果很多HFDS操作超时,这个配置应该增大。
四、解决方法
方法一:
修改flume配置文件:
- 增大参数hdfs.callTimeout的值
- teflume_prod2.sinks.sink1.hdfs.callTimeout = 300000
方法2二:
修改源码:
public