首页 文章

Flume用例:从HTTP读取并通过Kafka推送到HDFS

提问于
浏览
4

我是Flume的新手,想在下面的场景中使用Flume .

我们的系统接收事件作为HTTP POST,我们需要将它们的副本存储在Kafka(用于进一步处理)和HDFS中的另一个副本(作为永久存储) .

我们可以将Flume源配置为HTTP,将通道配置为KAFKA,下沉为HDFS以满足我们的要求 . 这个解决方案有效吗?

1 回答

  • 0

    如果我理解得很好,你希望Kafka作为最终后端存储数据,而不是Flume代理用来同时传输源和接收器的内部通道 . 我的意思是,Flume代理基本上由接收数据和构建Flume事件的源组成,这些事件被放入一个通道,以便接收器读取这些事件并对它们执行某些操作(通常,将这些数据保存在最终后端) . 因此,根据您的设计,如果您使用Kafka作为内部通道,那将是一种通信HTTP源和HDFS接收器的内部方式;但它永远不会从代理商外部访问 .

    为了满足您的需求,您需要和代理商,例如:

    http_source -----> memory_channel -----> HDFS_sink ------> HDFS
                |
                |----> memory_channel -----> Kafka_sink -----> Kafka
    
    {.................Flume agent.....................}       {backend}
    

    请注意基于内存的 Channels 是内部 Channels ,它们可以基于内存或文件,甚至在Kafka中,但Kafka Channels 将与最终的Kafka不同,您将保留数据并且您可以访问这些 Channels 应用程序 .

相关问题