设为首页 收藏本站
查看: 1399|回复: 0

[经验分享] flume 几个比较有用的source、sink和decorator

[复制链接]

尚未签到

发表于 2015-9-17 07:07:42 | 显示全部楼层 |阅读模式
1. Source catalog:
  1.console[("format")] 控制台输出,可以带输出内容格式的参数



console(“raw”)
console(“json”)
  
  2.text("filename"[, format])一次读取文件内容,每一个换行做为一个事件。
  
  3.tail("filename"[, startFromEnd=false]{,delim="regex", delimMode="exclude|prev|next"})
     读取文件尾部内容跟linux上tail类似。


  •    Filename:读取的文件名,
  •    StartFromEnd 每次重读时,是否重头开始读。默认false每次重头开始重读,
  •    Delim 是分割参数,
  •    DelimMode分隔符数据属于哪一部分的指定。
  4tailDir("dirname"[,fileregex=".*"[, startFromEnd=false[,recurseDepth=0]]]{,delim="regex",delimMode="exclude|prev|next"})
  对一个目录下面有改动文件的事件发送


  • Dirname:目录名
  • Fileregex:文件名正则表达式匹配,需要符合java中正则表达式规则
  • StartFromeEnd 跟tail中的参数一样。
  • RecurseDepth :指定目录下是否递归对其子目录中文件的监控。指定递归层数。
  • 其他剩余参数跟tail中一致。
  

2. Sinks catalog

CollectorTier Event Sinks
  1.   collectorSink("fsdir","fsfileprefix"[, rollmillis[, format]])
  收集发送过来的事件。


  • Fsdir:目录,
  • Fsfileprefix:文件前缀,
  • Rollmillis:对于hdfs来就是文件的打开是关闭这段时间
  • Format是输出文件格式



AgentTier Event Sinks
  1. agentSink[("machine"[,port])]
  将事件发送到指定机器的指定端口,默认方式是End-to-End,等效于agentE2ESink
  
  2. agentE2ESink[("machine"[,port])]
  先讲event内容写入文件防止在缓冲丢失和点对点确认的数据传输


  • Machine: collectorSource的ip,
  • Port: collectorSource的端口
  
  3、agentDFOSink[("machine"[,port])]
  当连接断开时,会把event写到本地,并且会不断重试发送event给对方,把之前未发送成功的event再次发送。
  
  4、agentBESink[("machine"[,port])]   
  BestEffort Agent sink,最有效率的agent sink,顾名思义,就是只管发送,不管有没有发送成功。就可能存在丢失event的情况存在。
  
  5.  agentE2EChain("m1[:_p1_]"[, "m2[:_p2_]"[,…]])
  有多个collector可供选择发送。如果第一丢失连接了,就会向第二发送event,以此类推。并且会不定期回来查看原来没反应的collector是否已经恢复了,如果恢复了,就会跟原来的节点交互了。发送机制跟agentE2ESink一样
  
  agentDFOChain和agentBEChain与5类似,另外:autoE2EChain,autoDFOChain,autoBEChain,自动的会想master要可以连接的collector
  

3. 装饰器catalog


  • writeAhead 在sink发送前先写入文件后,在本地缓冲机制,可让接收和发送分别在不同的线程中进行。
  • ackedWriteAhead[(maxmillis)]
  • diskFailover[(maxmillis)]:如果event发送失败,就在本地磁盘缓存,然后每隔maxmillis 时间去重试。
  • ackInjector: 注入ack确认操作。
  • ackChecker:计算发送组的checksum值,插入到ackInjector中
  • lazyOpen:只在调用append的时候,才会做真正的open,closed操作
  • format("pattern"):改变输出格式,具体格式有pattern参数指定。对于需要做checksum的events来说由于改变了数据格式将导致checksum的值也会改变。从而导致消息的丢失。这个装饰器一般用在对消息可靠性要求不是很高,或者reports中。
  • batch(n,maxlatency): 缓存n个events 然后统一发送。如果等待时间操作maxlatency,即使未有n个events也会发送。
  • unbatch:对于上面被batch操作过的events,同步unbatch来拆分开。
  • gzip:将events事件序列化后压缩
  • gunzip:对gzip压缩过的events,解压
  • intervalSampler(n) 每隔n个events 发送一次,算是一个优化手段,特别是通过网络传输时。
  • probSampler(p):通过概率p来做决定是否将events接着往下发送
  • reservoirSampler(k):对接收到events根据发送时的顺序重新来组织。
  • delay(ms)  对要发送的events内容延迟ms
  • choke[(choke-id)]:限制发送速度
  •   value("attr","value"{,escape=true|false}),可以在日志上加一个新的属性,相当于是打tag

  • split("regex",idx,"attr"),可以对日志进行split,取某个字段,然后设置到attr的tag上
  
  参考自:http://hi.baidu.com/izouying/blog/item/18e6a2d3b0df91c4a8ec9a2b.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-114560-1-1.html 上篇帖子: flume日志采集 下篇帖子: Flume采集处理日志文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表