自己动手做大数据系统(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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章中详细介绍。