flume用例:通过kafka从http读取并推送到hdfs

nimxete2  于 2021-06-04  发布在  Flume
关注(0)|答案(1)|浏览(390)

我是flume的新手,正在考虑在下面的场景中使用flume。
我们的系统以httppost的形式接收事件,我们需要将事件的一个副本存储在kafka中(用于进一步处理),另一个副本存储在hdfs中(作为永久存储)。
我们能否将flume源配置为http,通道配置为kafka,接收器配置为hdfs来满足我们的需求。这个解决方案有效吗?

bnlyeluc

bnlyeluc1#

如果我理解的很好,您希望kafka作为存储数据的最终后端,而不是flume代理用来通信源和汇的内部通道。我的意思是,flume代理基本上由接收数据的源和构建flume事件组成,这些事件被放入一个通道中,以便接收器读取这些事件并处理它们(通常,将这些数据持久化到最终的后端)。因此,根据您的设计,如果您使用kafka作为内部通道,它将是http源和hdfs接收器的内部通信方式;但从代理外部永远无法访问它。
为了满足您的需求,您将需要和代理,例如:

http_source -----> memory_channel -----> HDFS_sink ------> HDFS
            |
            |----> memory_channel -----> Kafka_sink -----> Kafka

{.................Flume agent.....................}       {backend}

请注意,基于内存的通道是内部通道,它们可以基于内存或文件,即使在Kafka,但Kafka通道将不同于最终Kafka您将持久化的数据,这将由您的应用程序访问。

相关问题