一、完整报错
- 05 Nov 2022 15:25:03,244 WARN [hdfs-sink1-roll-timer-4] (org.apache.flume.sink.hdfs.BucketWriter$CloseHandler.close:396) - Closing file: {hdfsPath}.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二ÿ
这篇博客介绍了Apache Flume在处理数据时遇到的'Closing file: gz.tmp failed. Will retry again in 180 seconds.'警告的详细情况。问题源于HDFS压力过大导致文件关闭超时。文章解释了错误原因,即HDFS操作超时,并解析了配置参数'hdfs.callTimeout'的作用。提供了解决方案,包括增加该参数的值以及修改源码来解决此问题。
订阅专栏 解锁全文
140

被折叠的 条评论
为什么被折叠?



