Kafka与Flume

Kafka和Flume是日志系统,Kafka作为分布式消息中间件适合日志缓存,Flume则擅长数据采集。Flume通过agent、collector和storage三部分实现数据流,支持多种数据源,而Kafka提供多生产者和消费者共享主题的模式。如果数据需要多系统消费,选择Kafka;若目标是Hadoop,Flume更优。Flume的拦截器能实时处理数据,而Kafka需要外部流处理系统。两者结合能提高系统的灵活性和可靠性。

  Kafka和Flume都是日志系统。Kafka是分布式消息中间件,自带存储,提供push和pull存取数据功能。Flume是管道流方式,分为agent(数据采集器),collector(数据简单处理和写入),storage(存储器)三部分,每一部分都是可以定制的。比如agent采用RPC(Thrift-RPC)、text(文件)等,storage指定用HDFS做。Kafka做日志缓存应该是更为合适的,但是 Flume的数据采集部分做的很好,可以定制很多数据源,减少开发量。目前比较流行Flume+Kafka模式。

  • Kafka是一个非常通用的系统,可以有许多生产者和很多的消费者共享多个主题Topics。相比之下,Flume是一个专用工具被设计为旨在往HDFS,HBase发送数据。它对HDFS有特殊的优化,并且集成了Hadoop的安全特性。所以如果数据被多个系统消费的话,使用Kafka;如果数据被设计给Hadoop使用,使用Flume。
  • Flume可以使用拦截器实时处理数据。这些对数据屏蔽或者过量是很有用的。Kafka需要外部的流处理系统才能做到。
  • Kafka和Flume都是可靠的系统,通过适当的配置能保证零数据丢失。然而,Flume不支持副本事件。于是,如果Flume代理的一个节点奔溃了,即使使用了可靠的文件管道方式,也将丢失这些事件直到恢复这些磁盘。如果需要一个高可靠行的管道,那么使用Kafka是个更好的选择。

问题:日志处理为什么要同时使用Flume和Kafka,是否可以只用Kafka 不使用Flume?
当时想到的就只用Flume的接口多,不管是输入接口(socket 和 文件)以及输出接口(Kafka/HDFS/HBase等)。考虑到现有系统业务发展,为了后面的灵活扩展,在系统设计时留有一定的扩展性感觉更重要。可能使用Flume+kafka架构相对只使用Kafka会多占用1-2台机器做Flume日志采集,但是为了方便以后日志数据处理方式的扩展,可以采用Flume+kafka架构。

  Flume :管道 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值