使用flume问题总结2——flume event的简单理解

Flume Event

  1. event是flume中处理消息的基本单元,由零个或者多个header和正文body组成。
  2. Header 是 key/value 形式的,可以用来制造路由决策或携带其他结构化信息(如事件的时间戳或事件来源的服务器主机名)。你可以把它想象成和 HTTP 头一样提供相同的功能——通过该方法来传输正文之外的额外信息。
  3. Body是一个字节数组,包含了实际的内容。
  4. flume提供的不同source会给其生成的event添加不同的header,例如:
  5. Objavro.codecnullavro.schema?{"type":"record","name":"Event","fields":[{"name":"headers","type":{"type":"map","values":"string"}},{"name":"body","type":"bytes"}]} ?u 1?荍?只3L??<span style="color:#ff0000;">Severity</span>0&<span style="color:#ff0000;">flume.syslog.status</span>Invalid<span style="color:#ff0000;">Facility</span>0<span style="color:#ff0000;">domain_name</span>sina PYM:sina YDIP:81.168.44.33 QQLX:NS IPGS:3Severity0&flume.syslog.statusInvalidFacility0domain_namesina PYM:sina YDIP:111.168.44.33 QQLX:A IPGS:2?u 1?荍?只3L?
    这是我测试时使用SyslogTCPSource,sink为FillRollSink,输出至文件中的event信息。有两个event,固定的header有:Severity、flume.syslog.status、Facility,最后一个domain_name是我自己通过拦截器添加的。
  6. 由于测试程序中只是实现了一个socket的客户端,发送字符串给flume,并没有严格按照syslog的标准格式构造消息(可参考RFC3164),因此flume.syslog.status的值为Invalid.
  7. flume允许用户修改event,添加header,从而通过消息的内容对日志进行路由。具体需要使用的机制有:拦截器interceptor和选择器selector;
  8. 关于拦截器和选择器的原理介绍以及简单实例可参考官方用户手册以及《Apache Flume: Distributed Log Collection for Hadoop》(该书有中文版的译本,由冯佳冬翻译,看完之后受益匪浅)
参考文献:
  1. 《Apache Flume: Distributed Log Collection for Hadoop》冯佳冬翻译
  2. 下载链接:http://download.csdn.net/detail/jiadong588/8124809#comment

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值