Kafka安装及命令操作

今天我们看一下Kafka的安装,其中包括单机模式和集群模式,以及基本的命令操作。

Kafka安装

因为 Kafka 是依赖ZooKeeper 的,此时我们需要先到Apache官网下载,具体的安装步骤见《ZooKeeper的安装运行》。然后,在Kafka官网上面可以下载到最新的Kafka 安装包。

单机模式

当ZooKeeper 安装好之后,我们解压缩Kafka压缩文件,并在文件目录里面添加 logs 文件夹,用以存储Kafka 数据文件。如下图所示:

然后我们需要修改 config 文件夹下面的 server.properties 文件。在原先文件的基础上修改点如下:

log.dirs=/Users/xuefeihu/software/kafka/logs  # 解压文件里新建的 logs文件夹
zookeeper.connect=localhost:2181     # 对应ZooKeeper 集群地址

然后到 kafka/bin 目录下执行如下命令启动Kafka 实例:

./kafka-server-start.sh ../config/server.properties

集群模式

因为Kafka天生就是分布式的,你可以简单的理解为:启动 1 个实例就是单机,启动多个实例就是集群模式。下面介绍的安装我们会在一台机器上面开多个端口启动(生产上不同实例需要在不同机器上启动)。

首先我们创建一个 kafka-cluster 文件夹,然后解压缩 3 份安装包到 kafka-cluster 中,并分别命名为 kafka01、kafka02、kafka03,如下图所示:

此时我们分别修改 config/server.properties 中的参数分别如下

kafka01

broker.id=0  # 集群ID
port=9092    # 占用端口(新增配置),因笔者在一台电脑安装,需要占用不同端口
log.dirs=/Users/xuefeihu/software/kafka-cluster/kafka01/logs  # 数据文件目录,需要改为实际安装目录
zookeeper.connect=127.0.0.1:2181  # 修改为实际ZooKeeper 集群地址

kafka02

broker.id=1  # 集群ID
port=9093    # 占用端口(新增配置),因笔者在一台电脑安装,需要占用不同端口
log.dirs=/Users/xuefeihu/software/kafka-cluster/kafka02/logs  # 数据文件目录,需要改为实际安装目录
zookeeper.connect=127.0.0.1:2181  # 修改为实际ZooKeeper 集群地址

kafka03

broker.id=2  # 集群ID
port=9094    # 占用端口(新增配置),因笔者在一台电脑安装,需要占用不同端口
log.dirs=/Users/xuefeihu/software/kafka-cluster/kafka03/logs  # 数据文件目录,需要改为实际安装目录
zookeeper.connect=127.0.0.1:2181  # 修改为实际ZooKeeper 集群地址

参数更改完成后,分别运行如下命令,启动 3 个 Kafka 实例:

./kafka-server-start.sh ../config/server.properties

常用命令

创建Topic

./kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 2 --topic test

上面的命令创建了名为 test 的 Topic,其中分区数是2,每个分区的副本数是 1 。同时我们看到了,创建 Topic 时是需要指定 ZooKeeper 的地址的。

查看Topic列表

./kafka-topics.sh --list --zookeeper 127.0.0.1:2181

生产者写入

./kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

消费者读取

./kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test --from-beginning

查看 Topic 存储结构

./kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic test

结果如下所示

​​​​​​​