Flume有一些现成的组件来转换事件,然后再推动它们 -
与RegexHbaseEventSerializer
一样,您可以加入HBaseSink
。此外,提供自定义序列化程序很容易。
我想处理事件并将它们发送到下一个频道。最接近我想要的是Regex Extractor Interceptor,它接受regexp匹配的自定义序列化程序。但它不会替换事件体,只需将带有结果的新标题附加到事件中,从而使输出流更重。我想接受大型活动,比如zipped html> 5KB,解析它们并将许多超薄信息(如页面中的网址)放到另一个频道。
channel1 channel2
HtmlPagesSource -----------> PageParser -----------> WhateverSinkGoesNext
html urls
我是否必须为此编写自定义接收器,或者是否有某些类型的组件接受自定义序列化器,例如HBaseSink
?
如果我写一个接收器,我是否只使用Flume客户端SDK并在处理传入事件时调用append(Event)或appendBatch(List)?
答案 0 :(得分:3)
好像你需要运行两个Flume代理:
Agent1:HtmlPagesSource - >频道 - > PageParser(扩展AvroSink并覆盖可以解析输入并编写许多超薄消息的进程方法)
Agent2:AvroSource - >频道 - > WhateverSinkGoesNext
查看链接Flume数据流的一些示例: http://www.ibm.com/developerworks/library/bd-flumews/#N10081