分享

有人解决过flume写hdfs不刷新的问题么?

roywang1024 发表于 2015-1-15 20:46:40 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 24311
本帖最后由 roywang1024 于 2015-1-16 13:02 编辑

用的是hadoop2.5,flume1.5
flume采集写入hdfs,要求提高实时性,按一小时分文件不行,时间再短么小文件太多了

现在hdfs设了128M的block,flume写入临时文件时,没到block size,就看不到文件的大小,但是用cat能显示内容
看了flume的源码,有flush和sync,但是了解下来是hdfs的block size没到之前,数据不会刷新出来

有谁解决过这个问题吗?
-------------------------------------------------------------------------------------------
试过了改写flume源码,调用最新的hflush和hsync,也没有用
-------------------------------------------------------------------------------------------
创建了一个文件以后,它是可以在命名空间(namespace)中可以看到的
但是任何向此文件中写入的数据并不能保证是可见的,即使你flush了已经写入的数据,此文件的长度可能仍然为零
Hadoop提供了一种强制使buffer中的内容冲洗到datanode的方法,那就是FSDataOutputStream的sync()方法。调用了sync()方法后,Hadoop保证所有已经被写入的数据都被冲洗到了管道线中的datanode中,并且对所有读者都可见了



那么问题来了,是不是flush或sync之后,只更新了datanode,namenode的元数据没有更新,才导致的这个问题?

已有(6)人评论

跳转到指定楼层
w123aw 发表于 2015-1-15 21:11:04
按照时间到是可以,但是这个失去了flume的实时性。
最好按照大小来滚动,hdfs.rollSize或则按照hdfs.rollCount来滚动。

楼主这种情况属于hdfs的内容,并非flume的问题

HDFS中所有文件都是由块BLOCK组成,默认块大小为64MB。在我们的测试中由于数据量小,始终在写入文件的第一个BLOCK。而HDFS与一般的POSIX要求的文件系统不太一样,其文件数据的可见性是这样的:

如果创建了文件,这个文件可以立即可见;
写入文件的数据则不被保证可见了,哪怕是执行了刷新操作(flush/sync)。只有数据量大于1个BLOCK时,第一个BLOCK的数据才会被看到,后续的BLOCK也同样的特性。正在写入的BLOCK始终不会被其他用户看到!



回复

使用道具 举报

desehawk 发表于 2015-1-15 21:38:52
flume监控目录中的文件,可以一小时形成一个文件,如果按照大小滚动,就按照大小来形成文件。就不会出现这种情况了
回复

使用道具 举报

roywang1024 发表于 2015-1-16 09:10:46
w123aw 发表于 2015-1-15 21:11
按照时间到是可以,但是这个失去了flume的实时性。
最好按照大小来滚动,hdfs.rollSize或则按照hdfs.rollC ...

又查到说hadoop2.2开始废弃了sync,改成hsync
继续翻翻hadoop的源码。。。

时间大小都不行,数据流有高有低的,半夜几小时才几条肯定也不靠谱
回复

使用道具 举报

roywang1024 发表于 2015-1-16 09:11:47
desehawk 发表于 2015-1-15 21:38
flume监控目录中的文件,可以一小时形成一个文件,如果按照大小滚动,就按照大小来形成文件。就不会出现这 ...

时间,大小都不行,数据流有高有低的,半夜几小时才几条肯定也不靠谱
回复

使用道具 举报

w123aw 发表于 2015-1-16 10:42:52
roywang1024 发表于 2015-1-16 09:11
时间,大小都不行,数据流有高有低的,半夜几小时才几条肯定也不靠谱
可以按照小时来划分文件,这样应该可以避免这种情况了。
详细参考:

Hive读取不到Flume正在写入的HDFS临时文件的解决办法

回复

使用道具 举报

roywang1024 发表于 2015-1-16 10:56:19
w123aw 发表于 2015-1-16 10:42
可以按照小时来划分文件,这样应该可以避免这种情况了。
详细参考:

无法满足实时的需求
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条