数据收集之flume与kafka

孤者浪人 提交于 2020-01-14 09:10:35

概念

Flume是管道流方式,提供了很多的默认实现。

Kafka是一个可持久化的分布式的消息队列。

 

对比

Kafka 是一个通用的系统,可以有许多生产者和消费者共享多个主题。相比之下,Flume是一个专用工具,被设计为旨在往HDFS,HBase发送数据。如果数据被多个系统消费,使用kafka;如果数据被设计给Hadoop使用,使用Flume。

使用Kafka意味着你准备好了编写你自己的生产者和消费者代码。如果已经存在的Flume Sources和Sinks满足你的需求,并且你更喜欢不需要任何开发的系统,请使用Flume。

Flume可以使用拦截器实时处理数据。这些对数据屏蔽或者过量是很有用的。Kafka需要外部的流处理系统才能做到。

Flume不支持副本事件。于是,如果Flume代理的一个节点崩溃了,即使使用了可靠的文件管道方式,你也将丢失这些事件直到你恢复这些磁盘。如果你需要一个高可靠行的管道,那么使用Kafka是个更好的选择。

 

应用

Flume和Kafka可以结合起来使用。通常会使用Flume + Kafka的方式。其实如果为了利用Flume已有的写HDFS功能,也可以使用Kafka + Flume的方式。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!