Flume-ng HDFS Sink “丢数据”
2016-05-17 15:48
573 查看
原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。http://boylook.blog.51cto.com/7934327/1308188
线上对Flume流入HDFS配置path:p1,每分钟切一个文件,定期从p1从move完成的(rename)文件到外部表进行计算分析,发现有“丢数据”现象:即在p1下经常看到几GB的.tmp文件,查看Flume日志发现当出现CallTimeout
Exception :HDFS IO ERROR后,sink一直向.tmp写入,而不进行rename.
Flume HDFS Sink正常写入流程见:http://boylook.blog.51cto.com/7934327/1298627
默认情况下,当BucketWriter flush超过calltimeout(default:10s)时,会报出异常,这时可能HDFS或者网络异常,如果恰好到达了rollinterval,bucketWriter执行close->flush也会报出同样的异常:Unexpectederror,没有执行到renameBucket,此后该bucketWriter保持打开状态(因为intervalroll只在bucketWriter打开时进行一次调度),一直进行数据写入不再roll直到1.创建写的路径2.Flume重启
3.打开到达maxOpenFiles,这些是不可接受的.
查看源码发现在每次flush时会判断是否使用idleTime,如果使用则会调度一个idleHandler
thread进行清理:1.关闭bucketWriter 2.从LRUList中摘除掉bucketWriter,而默认竟然是不启用的=.=,后设置idleTime稍大于roll
interval后,不再出现“数据丢失”
BTW,对于HDFS SINK,callTimeout和idleTimeout的默认值真是太傻了...
本文出自 “MIKE老毕的海贼船” 博客,请务必保留此出处http://boylook.blog.51cto.com/7934327/1308188
Flume安装
Flume-ng FileChannel原理解析
Flume分布式日志系统(一):flume安装配置
Flume-ng:multi sink one channel两种配置方..
数据库开发工程师
原始出处 、作者信息和本声明。否则将追究法律责任。http://boylook.blog.51cto.com/7934327/1308188
线上对Flume流入HDFS配置path:p1,每分钟切一个文件,定期从p1从move完成的(rename)文件到外部表进行计算分析,发现有“丢数据”现象:即在p1下经常看到几GB的.tmp文件,查看Flume日志发现当出现CallTimeout
Exception :HDFS IO ERROR后,sink一直向.tmp写入,而不进行rename.
Flume HDFS Sink正常写入流程见:http://boylook.blog.51cto.com/7934327/1298627
默认情况下,当BucketWriter flush超过calltimeout(default:10s)时,会报出异常,这时可能HDFS或者网络异常,如果恰好到达了rollinterval,bucketWriter执行close->flush也会报出同样的异常:Unexpectederror,没有执行到renameBucket,此后该bucketWriter保持打开状态(因为intervalroll只在bucketWriter打开时进行一次调度),一直进行数据写入不再roll直到1.创建写的路径2.Flume重启
3.打开到达maxOpenFiles,这些是不可接受的.
查看源码发现在每次flush时会判断是否使用idleTime,如果使用则会调度一个idleHandler
thread进行清理:1.关闭bucketWriter 2.从LRUList中摘除掉bucketWriter,而默认竟然是不启用的=.=,后设置idleTime稍大于roll
interval后,不再出现“数据丢失”
BTW,对于HDFS SINK,callTimeout和idleTimeout的默认值真是太傻了...
本文出自 “MIKE老毕的海贼船” 博客,请务必保留此出处http://boylook.blog.51cto.com/7934327/1308188
![]() | ![]() |
相关文章
Flume-ng HDFS sink原理解析Flume安装
Flume-ng FileChannel原理解析
Flume分布式日志系统(一):flume安装配置
Flume-ng:multi sink one channel两种配置方..
职位推荐
Oracle数据库工程师数据库开发工程师
相关文章推荐
- Flume-ng HDFS sink原理解析
- [HDFS]HDFS的运行原理
- hadoop源码阅读之FileSystem简记
- Linkedin Camus,从Kafka到HDFS的数据传输管道
- Fix Corrupt Blocks on HDFS
- 【漫画解读】HDFS存储原理(转载)
- 运行于云端的Hadoop——数据即服务的论证
- 【转】【漫画解读】HDFS存储原理
- HDFS 常用命令
- HDFS数据加密空间--Encryption zone
- HDFS冗余数据块的自动删除
- RDD创建方式(集合,本地,HDFS)
- hadoop工作流引擎azkaban
- 利用HDFs上传文件的错误
- HDFS读写程序小测试
- 为什么HDFS的副本数通常选择3?
- Hadoop中map数的计算
- shell脚本新增或修改hadoop的xml配置文件
- Alluxio1.0.1最新版(Tachyon为其前身)介绍,+HDFS分布式环境搭建
- HADOOP监控