gpt4 book ai didi

java - 如何在 Flume 中转换事件并将它们发送到另一个 channel ?

转载 作者:行者123 更新时间:2023-11-30 08:26:27 27 4
gpt4 key购买 nike

Flume 有一些现成的组件可以在进一步插入事件之前转换事件 -像 RegexHbaseEventSerializer 你可以插入一个 HBaseSink。此外,提供自定义序列化程序也很容易。

我想处理事件并将它们发送到下一个 channel 。最接近我想要的是 Regex Extractor Interceptor ,它接受正则表达式匹配的自定义序列化程序。但它不替换事件主体,只是将带有结果的新 header 附加到事件中,从而使输出流更重。我想接受大型事件,例如压缩的 html > 5KB,解析它们并将许多细小的消息(例如在页面中找到的 url)放到另一个 channel 。

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

我是否必须为此编写一个自定义接收器,或者是否有某种类型的组件可以接受自定义序列化程序,例如 HBaseSink

如果我写一个接收器,我是否只使用 Flume 客户端 SDK 并在处理传入事件时调用 append(Event) 或 appendBatch(List)?

最佳答案

看来您需要运行两个 Flume 代理:

Agent1:HtmlPagesSource -> channel -> PageParser(扩展 AvroSink 并覆盖可以解析输入并写入许多 slim 消息的 process 方法)

Agent2:AvroSource -> channel -> WhateverSinkGoesNext

查找链接 Flume 数据流的一些示例: http://www.ibm.com/developerworks/library/bd-flumews/#N10081

关于java - 如何在 Flume 中转换事件并将它们发送到另一个 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21481034/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com