分享

【求助】关于flume向HDFS刷数据的问题

lixiaoliang7 发表于 2014-12-25 18:19:31 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 18452
大家好:
我的HIVE是数据是按天分区存储在HDFS中的。我的更新策略是120M,或者两小时flush一次数据。那么,可能存在数据跨天的存在。
我想在每天晚上23:59分之前flush一次数据。请问我应该如何做呢?
flume有没有内置这样的配置项?  难道一定要自定义sink吗。。。
我的博客 http://www.cnblogs.com/hark0623

已有(7)人评论

跳转到指定楼层
tntzbzc 发表于 2014-12-25 21:18:29
楼主flume的目录混了?
flume的滚动时间有三种

  1. hdfs.rollInterval
  2. hdfs.rollSize
  3. hdfs.rollCount
复制代码


分别是按照时间、大小及滚动的事件数


可以这样,把日志的目录分日期来保存,比如
2014年12月25日保存目录为:20141225
2014年12月24日保存目录为:20141224
一次这样,然后flume在传递的时候,也是依次传递位
20141225
20141224

这样就把数据分开了。
什么时候flush,就无所谓了



回复

使用道具 举报

tntzbzc 发表于 2014-12-25 21:19:35

flume也支持递归

Flume-ng-1.3.0 spooling source的方式增加了对目录的递归检测的支持
回复

使用道具 举报

lixiaoliang7 发表于 2014-12-26 05:57:33
tntzbzc 发表于 2014-12-25 17:18
楼主flume的目录混了?
flume的滚动时间有三种

哥们,你好:
可能我表达的有问题,假如说我配置如下:
hdfs.rollInterval =3600
hdfs.rollSize =0
hdfs.rollCount=0

这23:30分钟来了一条数据,而我的flume策略用的是时间,一个小时刷一次。
那么可能刷过去的数据就是跨天了。
这样的情况一般如何解决啦?

谢谢
回复

使用道具 举报

tntzbzc 发表于 2014-12-26 08:48:04
lixiaoliang7 发表于 2014-12-26 05:57
哥们,你好:
可能我表达的有问题,假如说我配置如下:
hdfs.rollInterval =3600
如果上面解决不了,只能自己自定义开发了。
回复

使用道具 举报

mjjian0 发表于 2014-12-26 20:51:53
tntzbzc 发表于 2014-12-25 21:18
楼主flume的目录混了?
flume的滚动时间有三种

flume在采集日志的时候可以按日期分目录吗?怎么配置flume才能完成这样的目的啊?
回复

使用道具 举报

tntzbzc 发表于 2014-12-27 11:57:20
mjjian0 发表于 2014-12-26 20:51
flume在采集日志的时候可以按日期分目录吗?怎么配置flume才能完成这样的目的啊?
日志只要是按照日期分目录,传递的时候,flume可以自动传递。
这里面关键不是flume,是日志已经分好的日期目录
回复

使用道具 举报

lixiaoliang7 发表于 2014-12-29 09:36:14
tntzbzc 发表于 2014-12-27 07:57
日志只要是按照日期分目录,传递的时候,flume可以自动传递。
这里面关键不是flume,是日志已经分好的日 ...

我大概明白了。 我投空测试一下。 测试完后无论结果如何,都会回一下这个贴子的。 不过可能比较久之后了。
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条