定义:
Flume:是Cloudera提供的一个分布式的海量日志采集、聚合和传输的系统;
Kafka:是一种高吞吐量的分布式发布订阅消息系统;
各特点:
场景:
Flume主要是和HDFS\HBase结合,有特殊优化效率更好;
Kafka 是一个通用型系统,开发商 Cloudera 推荐如果数据需要被多个应用程序消费的话,推荐使用 Kafka。
实时过滤:
Flume 可以在拦截器里面实时处理数据。这个特性对实时过滤数据非常有用。Kafka 需要一个外部系统帮助处理数据。
数据保存:
kafka更适合做日志缓存:两个系统都可以保证不丢失数据。但Flume 不会复制事件,如果 Flume agent 所在的这个节点宕机了,你会失去所有的事件访问能力直到你修复这个受损的节点。使用 Kafka 的管道特性不会有这样的问题。
两者可协作工作:
kafka + flume:如果你需要把流式数据从 Kafka 转移到 Hadoop,可以使用 Flume 代理 (agent),将 kafka 当作一个来源 (source),这样可以从 Kafka 读取数据到 Hadoop。
flume + kafka:做日志缓存;flume的数据采集部分做的很好,可以定制很多数据源,减少开发量(kafka没有直接可用的生产者与消息者,需要自己实现),然后利用kafuka分发到多个系统;
整理自:Flume 与Kafka区别