分享

flume怎么按实际数据里的时间字段来分区写入hdfs目录

louiscool2 发表于 2015-10-23 11:39:02 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 26216
flume怎么按实际数据里的时间字段来分区写入hdfs目录?比如监控文件,文件里的数据第一个字段是时间信息,或者我要监控的文件名就带时间信息。
在flume里怎么用这个时间来分区写入hdfs,按日期按小时分目录。


以下的方式是按照flume写时的当前时间,可能跟实际数据里的时间字段有差异
agent-1.sources.src-1.interceptors.i1.type = timestamp

agent-1.sinks.sink_hdfs.channel = ch-1
agent-1.sinks.sink_hdfs.type = hdfs
agent-1.sinks.sink_hdfs.hdfs.path = hdfs://master:xxxx/tmp/e1/%Y-%m-%d

已有(4)人评论

跳转到指定楼层
arsenduan 发表于 2015-10-23 14:16:39
差异在什么地方,flume的时间取之本地时间。
所有时间一致应该没有问题
回复

使用道具 举报

louiscool2 发表于 2015-10-23 14:32:10
这个有办法吗?
先不用纠结为什么会有这个需求,其实场景挺多的,比如数据延迟一个小时,生成时间是14点,但数据里的时间字段是13点

回复

使用道具 举报

NEOGX 发表于 2015-10-23 16:49:10
louiscool2 发表于 2015-10-23 14:32
这个有办法吗?
先不用纠结为什么会有这个需求,其实场景挺多的,比如数据延迟一个小时,生成时间是14点, ...

有是肯定有的
1.安装ntp,保证flume客户端和服务器时间一致
2.如果时间不一致也行,但是目前情况来看flume可能实现不了,自己二次开发flume
回复

使用道具 举报

louiscool2 发表于 2015-10-24 19:25:04
这个解决不了我的问题,看来是我描述的有点问题
简单的举个例子,假设日志服务器每次13.10分生成一个12点数据的文件,那么flume 13.10分监控到这个新文件,写入hdfs小时分区是13而不是12.


回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条