分享

flume的spooldir如何处理监控目录下的小文件(小文件外部写进来)

最近公司有个需求,就是用flume将一文件夹下的许多小文件分类,自定义sink端持久化到数据库,但是遇到一个问题,就是那些被flume监听小文件是从外部写进来的,会变化(写完以后才可以让flume读,否则报错),有没有什么办法将它过滤或者设置时间等小文件完成变动后再让flume读,大神们,肿么办

已有(8)人评论

跳转到指定楼层
xuanxufeng 发表于 2014-5-28 10:58:58
一、sink可以设置时间间隔,

引用如下内容
Sink在设置存储数据时,可以向文件系统中,数据库中,hadoop中储数据,在日志数据较少时,可以将数据存储在文件系中,并且设定一定的时间间隔保存数据。在日志数据较多时,可以将相应的日志数据存储到Hadoop中,便于日后进行相应的数据分析。
详细可参考:
Flume内置channel,source,sink三组件介绍

二、自定义Sink
你也可以看看Sink是否有像数据库一样的触发器,如果没有的话,只能自己开发个了,具体如何开发可以参考:
Flume(ng) 自定义sink实现和属性注入



回复

使用道具 举报

hadoop小象 发表于 2014-5-28 11:04:10
xuanxufeng 发表于 2014-5-28 10:58
一、sink可以设置时间间隔,

引用如下内容

现在的问题就是source端,会抛异常,因为source端监控的文件在变化,而且我监控的不是log文件,就没了log的分割功能
回复

使用道具 举报

xuanxufeng 发表于 2014-5-28 11:13:07
hadoop小象 发表于 2014-5-28 11:04
现在的问题就是source端,会抛异常,因为source端监控的文件在变化,而且我监控的不是log文件,就没了log ...

你是采用不断追加的,还是什么方式,你参考一下这个帖子:
跟你的错误很类似:
flume 用spooldir的source配置方式 到最后总报异常

回复

使用道具 举报

hadoop小象 发表于 2014-5-28 11:14:43
xuanxufeng 发表于 2014-5-28 11:13
你是采用不断追加的,还是什么方式,你参考一下这个帖子:
跟你的错误很类似:
flume 用spooldir的sour ...

监控的文件是不断追加的
回复

使用道具 举报

xuanxufeng 发表于 2014-5-28 11:16:44
你可以使用exec方式,spooldir经常出问题
回复

使用道具 举报

hadoop小象 发表于 2014-5-28 11:22:21
xuanxufeng 发表于 2014-5-28 11:16
你可以使用exec方式,spooldir经常出问题

我也想用exec,但是里面有很多小文件,不时有新文件读进来,exec处理后的文件还是原样子吗
回复

使用道具 举报

xuanxufeng 发表于 2014-5-28 11:54:57
这个就不太知道了,个人觉得你说的这个变与不变不要太重要吧。日志即使发生变化,你也可以通过自定义等其他的方式来保留。变的可能性很小。
更多内容,你可以参考下这个,我觉得还不错。

flume-ng 1.4的安装的介绍及介绍如何搜集数据示例


回复

使用道具 举报

semion 发表于 2014-9-5 17:19:58
hadoop小象 发表于 2014-5-28 11:04
现在的问题就是source端,会抛异常,因为source端监控的文件在变化,而且我监控的不是log文件,就没了log ...

我现在也有这个需求,但是要监控log4j日志产生的日志,而已会一直变化,你是怎么监控这个目录的?
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条