`

kafka和flume的对比

 
阅读更多
摘要: (1)kafka和flume都是日志系统。kafka是分布式消息中间件,自带存储,提供push和pull存取数据功能。flume分为agent(数据采集器),collector(数据简单处理和写入),storage(存储器)三部分,每一部分都是可以定制的。比如agent采用RPC(Thrift-RPC)、text(文件)等,storage指定用hdfs做。

           (2)kafka做日志缓存应该是更为合适的,但是 flume的数据采集部分做的很好,可以定制很多数据源,减少开发量。所以比较流行flume+kafka模式,如果为了利用flume写hdfs的能力,也可以采用kafka+flume的方式。




采集层 主要可以使用Flume, Kafka两种技术。

Flume:Flume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展API.

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

• Kafka 是一个非常通用的系统。你可以有许多生产者和很多的消费者共享多个主题Topics。相比之下,Flume是一个专用工具被设计为旨在往HDFS,HBase发送数据。它对HDFS有特殊的优化,并且集成了Hadoop的安全特性。所以,Cloudera 建议如果数据被多个系统消费的话,使用kafka;如果数据被设计给Hadoop使用,使用Flume。




• 正如你们所知Flume内置很多的source和sink组件。然而,Kafka明显有一个更小的生产消费者生态系统,并且Kafka的社区支持不好。希望将来这种情况会得到改善,但是目前:使用Kafka意味着你准备好了编写你自己的生产者和消费者代码。如果已经存在的Flume Sources和Sinks满足你的需求,并且你更喜欢不需要任何开发的系统,请使用Flume。




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




• Kafka和Flume都是可靠的系统,通过适当的配置能保证零数据丢失。然而,Flume不支持副本事件。于是,如果Flume代理的一个节点奔溃了,即使使用了可靠的文件管道方式,你也将丢失这些事件直到你恢复这些磁盘。如果你需要一个高可靠行的管道,那么使用Kafka是个更好的选择。




• Flume和Kafka可以很好地结合起来使用。如果你的设计需要从Kafka到Hadoop的流数据,使用Flume代理并配置Kafka的Source读取数据也是可行的:你没有必要实现自己的消费者。你可以直接利用Flume与HDFS及HBase的结合的所有好处。你可以使用Cloudera Manager对消费者的监控,并且你甚至可以添加拦截器进行一些流处理。

因为每条消息都被append到该Partition中,属于顺序写磁盘,因此效率非常高(经验证,顺序写磁盘效率比随机写内存还要高,这是Kafka高吞吐率的一个很重要的保证)。


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

Kafka、Flume都可以实现数据的传输,但它们的侧重点不同。

Kafka追求的是高吞吐量、高负载(topic下可以有多个partition)

Flume追求的是数据的多样性:数据来源的多样性、数据流向的多样性




如果数据来源很单一、想要高吞吐的话可以使用Kafka

如果数据来源很多、数据流向很多的话可以使用Flume

也可以将Kafka和Flume结合起来使用。

分享到:
评论

相关推荐

    开源日志系统比较:scribe、chukwa、kafka、flume.docx

    本篇将对比分析四个流行的开源日志系统:Facebook的Scribe、Apache的Chukwa、LinkedIn的Kafka以及Cloudera的Flume,主要关注它们的设计架构、负载均衡能力、可扩展性和容错机制。 **1. Facebook的Scribe** Scribe...

    开源日志系统比较:scribe、chukwa、kafka、flume.pdf

    本文主要对比了四个知名的开源日志系统:Facebook的Scribe、Apache的Chukwa、LinkedIn的Kafka以及Cloudera的Flume。这四个系统各自拥有独特的设计和优势,适用于不同的场景。 1. Facebook的Scribe Scribe是一款由...

    47_Flume、Logstash、Filebeat调研报告

    Kafka是一种高吞吐量的分布式发布订阅消息系统,常被用作Flume和Logstash等数据收集工具的中间数据缓冲区。Kafka提供了可靠的消息传递,并能处理大量的实时数据。在实时计算框架中,Kafka作为一个消息中间件,可以将...

    flume和logstash.zip

    三、Flume与Logstash对比 Flume更适合于Hadoop生态,与HDFS、HBase等组件集成紧密;而Logstash则更通用,尤其在与Elastic Stack配合时,能提供强大的日志分析和可视化能力。 总结,Flume和Logstash都是大数据日志...

    通俗易懂的Kafka升级版教程(含配套资料)

    在本课程中,你将学习到,Kafka架构原理、安装配置使用、详细的Kafka写入数据和处理数据以及写出数据的流程、新旧版本对比及运用、分区副本机制的详解、内部存储策略、高阶API直接消费数据、低阶API自行管理Offset...

    spark Streaming和structed streaming分析

    Structured Streaming提供了Source和Sink的概念,它支持多种数据源作为输入(如Kafka、Flume、socket等)和输出(如Kafka、文件系统、console等)。它也支持状态存储,这意味着可以维护和更新流处理中的状态信息。 ...

    基于Flume的美团日志收集系统方案.doc

    总之,《基于Flume的美团日志收集系统》详细介绍了如何利用Flume构建一个强大的日志收集平台,涵盖了从系统架构设计、Flume与Scribe的对比、Flume的特性到实际运行中的优化策略等多个方面。这个系统体现了大数据时代...

    项目介绍1.docx

    - 针对开发和测试环境,规划了3台服务器,分别承载NameNode、DataNode、HDFS HA、NodeManager、Yarn RM、Zookeeper、Flume、Kafka、Hive、MySQL、Sqoop和Azkaban等功能。 总结来说,这个项目分享了大数据项目从无...

    CDH-HDP-MAPR-DKH-星环组件比较.docx

    7. Kafka和Flume处理数据流入流出,Kafka更侧重消息队列,Flume则用于数据收集。 8. Oozie是工作流管理系统,监控和调度集群任务。 9. ESSQL是基于Elasticsearch的SQL工具,提供对搜索数据的SQL查询支持。 10. DK...

    大数据设计方案.docx

    - 自服务服务器、Hadoop102、Hadoop03和Hadoop104分别承担了不同的角色,如NameNode、DataNode、NodeManager、ResourceManager、Zookeeper、Flume、Kafka、Hive、MySQL、Spark等,确保了测试环境的完整性和功能性。...

    海量日志处理开源系统比较.docx

    3. Kafka与Scribe和Chukwa的对比 - 相比于Scribe,Kafka更注重消息的高吞吐量和低延迟,更适合实时数据流处理,而Scribe更侧重于日志的收集和容错。 - 与Chukwa相比,Kafka不依赖于Hadoop生态,而是提供了自己的...

    大数据课程体系.docx

    - **Flume和Kafka的整合**:说明如何将Flume的数据收集能力与Kafka的消息传输能力相结合。 - **Kafka和Storm的整合**:解释如何将Kafka作为数据源与Storm的数据处理引擎相集成。 #### 十一、Storm实时计算框架 - **...

    开源日志管理最全对比.docx

    全功能的日志管理工具,如ELK(Elasticsearch、Logstash、Kibana)组合,提供了一站式的解决方案,而Flume-ng结合Kafka和Storm可以满足分布式存储和实时流处理的需求。除此之外,还有SkyEye、Scribe和Chukwa等工具,...

    开源日志系统比较.pdf

    本文主要对比了四个开源的日志系统:Facebook的Scribe、Apache的Chukwa、LinkedIn的Kafka以及Cloudera的Flume。这四个系统都旨在解决海量日志数据的收集、传输和存储问题,以支持实时和离线分析。 1. Facebook的...

    46488_Spark大数据技术与应用_习题数据和答案.rar

    - 各种数据源和接收器的使用,如Kafka、Flume、TCP套接字等 - Stream-Stream操作,如Join和Window Join 4. **第5章**:Spark MLlib机器学习库 - 机器学习的基本概念和流程 - MLlib提供的各种算法,如分类、回归...

    spark代码.zip

    Spark Streaming支持多种数据源,如Kafka、Flume和TCP套接字。 4. **MLlib**:这是Spark的机器学习库,包含了各种常用的机器学习算法,如分类、回归、聚类、协同过滤等,同时提供了模型选择和评估工具。 5. **...

    大数据核心技术对比分析.pptx

    例如JiceADS项目中,数据通过Flume采集,存储在HBase或HDFS,经过Kafka清洗后,使用Spark Streaming进行实时处理,最终结果存储在ElasticSearch中,便于快速查询和分析。跨设备识别案例则展示了如何通过机器学习算法...

    大数据课程体系

    - **flume和kafka的整合**:将Flume与Kafka集成以实现高效的数据传输。 #### 七、分布式协调服务Zookeeper - **Zookeeperjavaapi开发**:使用Java API进行Zookeeper客户端开发。 - **Zookeeperrmi高可用分布式集群...

    logstash_6.4.0

    与Logstash相似,但Flume更侧重于可靠性和容错性,而Logstash则在数据处理和灵活性上更强。两者可以互相补充,构建更完整的数据流解决方案。 5. **Logstash 6.4.0特性**: - 改进了性能和稳定性,提供更高效的数据...

    2022数据智能知识地图,完整数据中台架构与全貌

    9. **大数据基础技术栈**:包括数据采集(如Flume、Kafka)、数据处理(如MapReduce、Flink)、数据存储(如HDFS、HBase)和数据分析工具(如Hive、Pig),为大数据应用提供技术支持。 这些知识点的深入理解和掌握...

Global site tag (gtag.js) - Google Analytics