如何转换flume中的事件并将它们发送到另一个通道?

gcmastyq  于 2021-06-03  发布在  Flume
关注(0)|答案(1)|浏览(327)

flume有一些现成的组件来转换事件,然后再将它们进一步推进 RegexHbaseEventSerializer 你可以坚持到一个 HBaseSink . 另外,提供自定义序列化程序也很容易。
我想处理事件并将它们发送到下一个频道。最接近我想要的是regex提取器拦截器,它接受用于regexp匹配的自定义序列化器。但它并不替换事件体,只是将结果附加到新的头中,从而使输出流更重。我想接受大尺寸的事件,比如压缩的html>5kb,对它们进行解析,并将许多瘦消息(比如页面中的url)放到另一个频道。

channel1                channel2
HtmlPagesSource -----------> PageParser -----------> WhateverSinkGoesNext
                    html                    urls

我是否必须为此编写一个自定义接收器,或者是否有某种类型的组件接受自定义序列化程序,例如 HBaseSink ?
如果我编写了一个接收器,那么在处理传入事件时,我是否只使用flume客户端sdk并调用append(event)或appendbatch(list)?

jmp7cifd

jmp7cifd1#

似乎你需要运行两个Flume代理:
agent1:htmlpagesource->channel->pageparser(扩展avrosink并重写可以解析输入和编写许多slim消息的进程方法)
agent2:avrosource->channel->whateversinkgoesnext
查找链接Flume数据流的一些示例:http://www.ibm.com/developerworks/library/bd-flumews/#n10081

相关问题