我是第一次接触Flume,我想在下面的场景中使用Flume。
我们的系统以HTTP POST的形式接收事件,我们需要将事件的一个副本存储在Kafka中(用于进一步处理),并将另一个副本存储在HDFS中(作为永久存储)。
我们是否可以将Flume源配置为HTTP,通道配置为KAFKA,宿配置为HDFS,以满足我们的要求。这个解决方案能行吗?
发布于 2015-09-22 17:38:02
如果我理解得很好,您希望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,您将持久化数据,并且将通过您的应用程序访问。
https://stackoverflow.com/questions/32667179
复制相似问题