SpoolDirectorySource使用及源码分析

Spooling Directory Source简介

Spooling Directory Source可以获取硬盘上“spooling”目录的数据,这个Source将监视指定目录是否有新文件,如果有新文件的话,就解析这个新文件。事件的解析逻辑是可插拔的。在文件的内容所有的都读取到Channel之后,Spooling Directory Source会重名或者是删除该文件以表示文件已经读取完成。
不像Exec Source,这个Source是可靠的,且不会丢失数据。即使Flume重启或者被Kill。但是需要注意如下两点:
        1,如果文件在放入spooling目录之后还在写,那么Flume会打印错误日志,并且停止处理该文件。
        2,如果文件之后重复使用,Flume将打印错误日志,并且停止处理。
为了避免以上问题,我们可以使用唯一的标识符来命令文件,例如:时间戳。

尽管这个Source是可靠的,但是如果下游发生故障,也会导致Event重复,这种情况就需要通过Flume的其他组件提供保障了。

 

属性名 默认 描述
channels

 

type 组件名:spooldir.
spoolDir 读取文件的目录。
fileSuffix .COMPLETED Spooling读取过的文件,添加的后缀。
deletePolicy never 完成后的文件是否删除。never:不删除 或 immediate:立即删除
fileHeader false 是不把路径加入到Heander
fileHeaderKey file 路径加入到Header的Key是什么
basenameHeader false 是不把文件名加入到Heander
basenameHeaderKey basename 文件名加入到Header的Key是什么
ignorePattern ^$ 采用正则表达是去过滤一些文件。只有符合正则表达式的文件才会被使用。
trackerDir .flumespool 被处理文件的元数据的存储目录,如果不是绝对路径,就被会解析到spoolDir目录下。
consumeOrder oldest 消费spooling目录文件的规则,分别有:oldest,youngest和random。在oldest 和 youngest的情况下,
通过文件的最后修改时间来比较文件。如果最后修改时间相同,就根据字典的序列从小开始。在随机的情况
下,就随意读取文件。如果文件列表很长,采用oldest/youngest可能会很慢,因为用oldest/youngest要
扫描文件。但是如果采用random的话,就可能造成新的文件消耗的很快,老的文件一直都没有被消费。
maxBackoff 4000
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值