(1)软件获取
部署kafka集群需要三种软件,分别为JAVA环境,zookeeper和kafka。截至撰写本文档之前,JDK最新版本为12.0.2,下载地址为https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html。zookeeper最新版本为3.5.5,下载地址为https://www-us.apache.org/dist/zookeeper/zookeeper-3.5.5/(推荐使用bin格式的压缩包)。kafka最新版本为2.3.0,下载地址为http://kafka.apache.org/downloads(推荐使用bin格式且为Scala 2.12)。
(2)部署结构
本次搭建一个kafka集群,使用三台服务器,服务器用途如下:
序号 |
IP地址 |
操作系统 |
作用 |
1 |
10.10.2.226 |
CentOS 7 |
Node-0 |
2 |
10.10.2.227 |
CentOS 7 |
Node-1 |
3 |
10.10.2.228 |
CentOS 7 |
Node-2 |
注:部署前将CentOS 7的防火墙关闭,并且关闭CentOS 7自身的selinux,关闭selinux后请重启机器。
(3)JAVA环境安装
将下载到本地的JDK压缩包通过SFTP客户端(WinSCP)上传到CentOS7相应的目录(这里选择opt目录)下。
然后解压JDK,解压命令为tar -zxvf jdk-12.0.2_linux-x64_bin.tar.gz。为了使后续使用方便将将压后的目录重命名为jdk,重命名的命令为mv jdk-12.0.2/ jdk。
安装JDK后需要配置一下环境变量,编辑/etc/profile文件。在文件尾部添加如下配置,如图1所示。
命令如下:
# vim /etc/profile
export JAVA_HOME=/opt/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
图1
保存完成后通过source命令重新加载/etc/profile文件,使得修改后的内容生效,命令如下。然后输入java –version查看jdk版本信息如图2所示。
# source /etc/profile
(4)zookeeper集群部署
将下载到本地的zookeeper压缩包通过SFTP客户端(WinSCP)上传到CentOS7相应的目录(这里选择opt目录)下。
然后解压zookeeper压缩包,解压命令同样使用tar解压命令。为了使后续使用方便将解压压后的目录重命名为zookeeper,重命名的命令同样使用mv命令。相关命令如下:
tar –zxvf apache-zookeeper-3.5.5-bin.tar.gz
mv apache-zookeeper-3.5.5-bin/ zookeeper
zookeeper的配置文件在zookeeper/config/目录下,首先复制zoo_sample.cfg为zoo.cfg。然后在zookeeper目录下创建data目录和logs目录,这里存放zookeeper数据和运行日志。相关命令如下:
cp zoo_sample.cfg zoo.cfg
mkdir /opt/zookeeper/{data,logs}
然后在data目录下创建myid文件,myid值是zoo.cfg文件里定义的server.A项A的值。Node-1(10.10.2.226)的myid值为1,10.10.2.227、10.10.2.228的myid的值为2,3。其中myid值为1~255。接下来配置zoo.cfg文件,配置内容如图3所示。
图3
其他两台的配置相同,这里不再介绍,配置保存后,开始启动zookeeper集群,启动、查看状态命令如下,状态显示如图4所示,显示信息还会包含这个节点属于主节点信息和从节点信息。
/opt/zookeeper/bin/zkServer.sh start
/opt/zookeeper/bin/zkServer.sh status
图4
至此,分别启动另外两台机器后,查看集群状态,zookeeper集群搭建完成。
(5)kafka集群部署
将下载到本地的kafka压缩包通过SFTP客户端(WinSCP)上传到CentOS7相应的目录(这里选择opt目录)下。
然后解压kafka压缩包,解压命令同样使用tar解压命令。为了使后续使用方便将解压压后的目录重命名为kafka,重命名的命令同样使用mv命令。相关命令如下:
tar –zxvf kafka_2.12-2.3.0.tgz
mv kafka_2.12-2.3.0/ kafka
kafka的配置文件在/opt/kafka/config目录下,编辑其中server.properties文件,编辑内容如图5所示。
图5
配置完成后启动,启动命令如下,如需在后台运行,则在命令后加&。其他两个节点的配置类似,只是broker.id不同,另外两台分别为2,3。
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
至此,kafka集群搭建已经完成。下面是测试的一些命令,前提是kafka在启动状态下。
1、创建topic:kafka/bin/kafka-topics.sh --create --zookeeper 10.10.2.226:2181, 10.10.2.227:2181, 10.10.2.228:2181 --replication-factor 3 --partitions 3 --topic test
2、显示topic:kafka/bin/kafka-topics.sh --describe --zookeeper 10.10.2.226:2181, 10.10.2.227:2181, 10.10.2.228:2181 --topic test
3、列出topic:kafka/bin/kafka-topics.sh --list --zookeeper 10.10.2.226:2181, 10.10.2.227:2181, 10.10.2.228:2181
4、在主节点创建生产者(master为0):kafka/bin/kafka-console-producer.sh --broker-list 10.10.2.226:9092 -topic test
5、在另外的节点创建消费者:kafka/bin/kafka-console-consumer.sh --bootstrap-server 10.10.2.226:9092, 10.10.2.227:9092, 10.10.2.228:9092 -topic test --from-beginning
6、删除topic:kafka/bin/kafka-topics.sh --delete --zookeeper 10.10.2.226:2181, 10.10.2.227:2181, 10.10.2.228:2181 --topic test