大数据开发:流处理组件Flume、Kafka对比

在这个数据爆发的移动互联网时代,数据流成为一种重要的数据产生形式,而针对于不断新增的流数据处理,大数据生态当中,也有相应的流处理组件,比如说Flume和kafka。今天的大数据开发学习分享,我们就来对流处理组件Flume、Kafka,做个简单的比较。

在构建大数据系统平台是,往往需要结合数据的数量,种类和速度多方面来考量,要满足实际的需求,这就需要可扩展性、可靠性、适应性等各个因素的结合。而在Hadoop生态当中,Flume和Kafka,是典型的产品。
 

大数据开发:流处理组件Flume、Kafka对比_第1张图片


Apache Flume

Flume是一个分布式系统,可用于收集、聚合流事件并将其传输到Hadoop中。它有许多内置的源、通道和接收器,例如Kafka通道和Avro接收器。Flume是基于配置的,它有拦截器来对通道中的数据执行简单的转换。

Flume部署由一个或多个使用拓扑配置的代理组成。Flume代理是一个JVM进程,它承载Flume拓扑的基本构建块,即源、通道和接收器。Flume客户机将事件发送到源,该源将这些事件成批放置到名为channel的临时缓冲区中,然后从该缓冲区中数据流到连接到数据最终目的地的接收器。

接收器也可以是其他Flume代理的后续数据源。代理可以被链接,并且每个代理都有多个源、通道和接收器。

Apache Kafka

Kafka是一种分布式、高吞吐量的消息总线,它将数据生产者与消费者分离开来。

消息被组织成主题,主题被拆分成分区,分区被跨集群中的节点(称为代理)复制。与Flume相比,Kafka具有更好的可扩展性和消息持久性。Kafka现在有两种风格:一种是“经典”的生产者/消费者模型,另一种是新的Kafka-Connect,它为外部数据存储提供可配置的连接器(源/接收器)。

Kafka可用于大型软件系统组件之间的事件处理和集成。此外,Kafka附带了Kafka流,它可以用于简单的流处理,而不需要像Apache Spark或Apache Flink那样的单独集群。

总结

从实际来说,在真正的大数据系统平台建设任务当中,没有哪个工具是能够完全满足所有的需求的,更多是需要不同的组件来进行集成开发,达到更优化的配置。

比如说,Flume-Kafka就常常做集成开发。结合Flume和Kafka,Kafka可以避免自定义编码并利用Flume经过实战考验的资源和接收器,通过Kafka通道的Flume事件将在Kafka代理中进行存储和复制,以实现弹性。

关于大数据开发,流处理组件Flume、Kafka,以上就为大家做了一个简单的对比了。在大数据开发任务当中,更多需要开发者从全局的角度去思考布局,以此来给出更低成本且高效的解决方案。

你可能感兴趣的:(大数据,大数据,hadoop,kafka,flume)