日志采集系统flume和kafka有什么区别及联系?


Flume和Kafka有一部分功能是相同的 。但是整体来看 。两者的差别还是很大的;它们使用的场景有所不同 。但是可以相互配合使用 。
Flume
简单的说 。Flume是分布式日志收集系统 。它把各个服务器上的日志收集起来 。传送到制定的地方 。比如传送到HDFS中 。

日志采集系统flume和kafka有什么区别及联系?

文章插图
Kafka
Kafka的定位是分布式消息中间件 。自带存储 。提供push和pull存取数据功能 。
日志采集系统flume和kafka有什么区别及联系?

文章插图
使用场景
在实际应用中 。系统实时产生的日志需要最后进入HDFS 。但是生产上的日志数量会有波动 。比如由于访问量的增加 。导致突然之间产生大量的日志 。这时候可能会导致日志写入HDFS失败 。所以这时候可以先把日志数据写入到Kafka中 。再由Kafka导入到HDFS中 。
总结:在日志采集系统中 。把Kafka当做日志缓存更加合适 。Flume做数据采集 。因为它可以定制很多数据源 。减少开发量 。所以Flume和Kafka可以配合起来一起工作 。
整体的流程是这样的:
服务器上的日志<--Flume-->Kafka-->HDFS-->离线计算
服务器上的日志<--Flume-->Kafka-->Storm
日志采集系统flume和kafka有什么区别及联系?

文章插图
希望我的回答能够帮助到你!
其他观点:
做大数据有一段时间了 。这两个大数据组件都有使用研究 。非常荣幸一起来交流这个问题 。
首先肯定的是两者有一些类似 。但也仅仅是一点点
两者都是从A端得到数据 。给B端用
但两者的区别是很大的
日志采集系统flume和kafka有什么区别及联系?

文章插图
日志采集系统flume和kafka有什么区别及联系?

文章插图
1. 首先两者是两个领域的东西
flume是数据采集测的组件 。采集日志信息、socket信息、命令输出信息等
kafka从当前功能上更偏向于消息队列 。但不同于JMS 。是分布式消息队列
2. 是否是分布式
flume 是非分布式组件 。只是多个节点可以前后拼接起来
kafka是分布式流式消息组件 。使用zookeeper实现分布式框架
3. 末端接收不同
flume的sink端是主动的将数据写入或推送到墓地里
kafka需要其他程序使用consumer来从kafka broker拉取数据
4.数据存储
flume只临时的保存少量数据在内存中作为缓存
kafka则可以在硬盘中分布式、可备份的保存默认七天的数据 。供多个消费者随时、重复的消费数据
5.计算能力
flume不具备计算能力
kafka以后的定位是流式一站式处理组件,kafka Streaming 具备流式处理数据的能力 。ksql也在研究中
总之:flume是数据采集组件 。kafka则是大数据流式处理框架 。两者是没有太多可比性的 。
上述就是我对flume和kafka的一点拙见 。欢迎大家进行评论指教 。也麻烦大家关注、点赞 。
学习是人充实 。祝大家出任CTO、迎娶白富美 !!!O(∩_∩)O
其他观点:
Flume
Flume是一个分布式系统 。可用于收集、聚合流事件并将其传输到Hadoop中 。它有许多内置的源、通道和接收器 。例如Kafka通道和Avro接收器 。Flume是基于配置的 。它有拦截器来对通道中的数据执行简单的转换 。
Kafka
Kafka是一种分布式、高吞吐量的消息总线 。它将数据生产者与消费者分离开来 。消息被组织成主题 。主题被拆分成分区 。分区被跨集群中的节点(称为代理)复制 。
与Flume相比 。Kafka具有更好的可扩展性和消息持久性 。
由于消息被持久化在磁盘上 。并且在集群中被复制 。因此数据丢失情况不像Flume那样常见 。也就是说 。无论是使用Kafka客户端还是通过Connect API 。生产者/来源和消费者/接收器通常都需要自定义编码 。与Flume一样 。消息大小也有限制 。
加米谷大数据培训 。大数据开发0基础班、提高班 。成都小班面授!
相关:
大数据流处理:Flume、Kafka和NiFi对比
【日志采集系统flume和kafka有什么区别及联系?】https://www.toutiao.com/i6711502507501158926/

    推荐阅读