2.8 Kafka
Kafka是一种高吞吐量的分布式中间件,它是在日志采集处理上比较通用的大数据组件工具。其核心架构如图2-10所示。
在图2-10中,其核心架构由Producer层、Broker层、Consumer层和ZooKeeper状态协同层4部分组成。在此要厘清以下几个概念。
• Broker:Kafka服务器,负责消息的存储和转发。
• Topic:消息类别,Kafka按照Topic来分类消息。
• Partition:Topic的分区。一个Topic可以包含多个Partition。Topic消息保存在各个Partition中。
• Producer:消息生产者。
• Consumer:消息消费者。
• Consumer Group:消费者分组,每个Consumer必须属于一个Group。
• ZooKeeper:保存着集群Broker、Topic、Partition等元数据;另外,它还具有Broker故障发现、Partition Leader选举、负载均衡等功能。
图2-10 Kafka核心架构图
企业一般选择Kafka作为日志处理工具的原因如下:
• 可与Flume工具进行很好的互补组合。Flume工具虽然有多种数据源类型采集设置并能稳定、可靠地把数据发送到HDFS或HBase中;但是,如果数据输出要求不仅仅要传给HDFS,还要传给多个数据消费者,就需要结合Kafka来对应组合,以达到更好的性能效果。
• Kafka作为轻量级的工具,更加灵活,并可自定义开发配置。这对于业务数据的多场景数据消费更方便。
• Kafka的源码是由Java和Scala编写的,所以如果企业使用了Spark架构,则选用Kafka组件与Spark对接的稳定性更好。
其对应的安装与配置步骤如下。
1)进入CentOS 7所对应的Kafka安装文件夹,在Apache Kafka网站下载软件包kafka_2.11-2.1.0.tgz。
2)下载完成后,解压缩并重命名所解压缩的文件夹名称:
3)进入kafka文件夹,进行配置文件的设置:
4)更改所对应的配置信息。为了使得前后环境及配置信息保持一致,具体配置信息会在第9章中详细介绍。