一、基本信息说明
官网:http://kafka.apache.org
快速开始:http://kafka.apache.org/quickstart
官网下载:http://kafka.apache.org/downloads http://apache.fayea.com/kafka/
中文文档:http://kafka.apachecn.org/
W3CSchool:https://www.w3cschool.cn/apache_kafka/
Hortonworks:https://hortonworks.com/apache/kafka
二、系统、工具配置信息
1、系统版本:CentOS-7-x86_64-Minimal-1708
2、JDK版本:jdk1.8
3、工具:xshell5
4、VMware 版本:VMware Workstation Pro15
三、集群搭建
1、虚拟机安装
参考 https://blog.csdn.net/llwy1428/article/details/89328381
2、JDK8环境搭建
参考 https://blog.csdn.net/llwy1428/article/details/85232267
3、Zookeeper 集群环境搭建
参考 https://blog.csdn.net/llwy1428/article/details/85937442
必须在集群的各个节点上完成上述JDK和Zookeeper环境搭建
4、在node3.cn节点上进行基本的配置(配置完毕基本信息,再把配置好的安装文件发送至其他各节点)
进入目录
[root@node3 ~]# cd /opt/cluster/
5、下载、解压文件
下载:
[root@node3 cluster]# wget https://www-eu.apache.org/dist/kafka/2.3.0/kafka_2.12-2.3.0.tgz
解压:
[root@node3 cluster]# tar zxvf kafka_2.12-2.3.0.tgz
6、赋权
[root@node3 cluster]# chmod 777 -R kafka_2.12-2.3.0
查看目录
7、编辑配置文件
[root@node3 cluster]# vim /opt/cluster/kafka_2.12-2.3.0/config/server.properties
#修改以下配置
#为方便,直接将broker.id设置为了ip的最后一段,当集群中有多个Kafka时,他们的这个值必须不一样
broker.id=133
#端口暂时不变
port=9092
#hostname修改为本机的主机名
host.name=node3.cn
#可选配置项,将日志输出到指定的位置
log.dirs=/tmp/kafka-logs
#必须配置自己的zookeeper
zookeeper.connect=node3.cn:2181,node4.cn:2181,node5.cn:2181
#在配置集群的时候,必须设置
listeners = PLAINTEXT://node3.cn:9092
注意
如果是单机版的话,使用默认配置即可。
如果是配置集群,下面信息必须修改:
(1)、broker.id:同一个集群中,每台机器均不能一样
(2)、zookeeper.connect:因为我有3台zookeeper服务器,所以在这里zookeeper.connect设置为3台,必须全部加进去
(3)、listeners:在配置集群的时候,必须设置,不然以后的操作会报找不到leader的错误
8、分发配置好的文件
[root@node3 cluster]# scp -r /opt/cluster/kafka_2.12-2.3.0 node4.cn:/opt/cluster/
[root@node3 cluster]# scp -r /opt/cluster/kafka_2.12-2.3.0 node5.cn:/opt/cluster/
9、进入节点 node4.cn
修改配置文件 server.properties
[root@node4 cluster]# vim /opt/cluster/kafka_2.12-2.3.0/config/server.properties
修改信息
broker.id=134
listeners=PLAINTEXT://node4.cn:9092
10、进入节点 node5.cn
修改配置文件 server.properties
[root@node5 cluster]# vim /opt/cluster/kafka_2.12-2.3.0/config/server.properties
修改信息
broker.id=135
listeners=PLAINTEXT://node5.cn:9092
11、防火墙或端口设置
集群中各节点 关闭防火墙,或者开启相应端口
关闭防火墙
关闭防火墙 : systemctl stop firewalld
查看状态 : systemctl status firewalld
开机禁用 : systemctl disable firewalld
端口加入白名单
[root@node3 ~]# firewall-cmd --zone=public --add-port=9092/tcp --permanent
[root@node3 ~]# firewall-cmd --reload
12、启动 Zookeeper 集群,并查看集群中各节点 Zookeeper 状态
过程:略。参考 https://hunter.blog.csdn.net/article/details/96651537
查看Zookeeper集群各个节点的状态
~]# /opt/cluster/zookeeper-3.4.5-cdh5.16.1/bin/zkServer.sh status
13、集群各节点启动 Kafka 服务
[root@node3 ~]# /opt/cluster/kafka_2.12-2.3.0/bin/kafka-server-start.sh -daemon /opt/cluster/kafka_2.12-2.3.0/config/server.properties
[root@node4 ~]# /opt/cluster/kafka_2.12-2.3.0/bin/kafka-server-start.sh -daemon /opt/cluster/kafka_2.12-2.3.0/config/server.properties
[root@node5 ~]# /opt/cluster/kafka_2.12-2.3.0/bin/kafka-server-start.sh -daemon /opt/cluster/kafka_2.12-2.3.0/config/server.properties
14、查看集群中各个节点的服务的启动状态
15、操作 Kafka
创建topic
[root@node3 ~]# /opt/cluster/kafka_2.12-2.3.0/bin/kafka-topics.sh --create --zookeeper node3.cn:2181 --replication-factor 1 --partitions 1 --topic test
成功创建,如下图:
说明:
--zookeeper:为zk服务器地址,已逗号分割配置多个
--replication-factor:分区leader副本数,1代表没有副本即分区本身,建议为2
--partitions:分区数
--topic:topic名称
16、查看topic
[root@node3 ~]# /opt/cluster/kafka_2.12-2.3.0/bin/kafka-topics.sh --list --zookeeper node3.cn:2181
17、查看test topic信息
[root@node3 ~]# /opt/cluster/kafka_2.12-2.3.0/bin/kafka-topics.sh --describe --zookeeper node3.cn:2181 --topic test
说明:
leader:负责处理消息的读和写,leader是从所有节点中随机选择的.
Replicas:列出了所有的副本节点,不管节点是否在服务中.
Lsr:是正在服务中的节点.
18、发布消息
[root@node3 ~]# /opt/cluster/kafka_2.12-2.3.0/bin/kafka-console-producer.sh --broker-list node3.cn:9092 --topic test
19、消费消息
[root@node5 ~]# /opt/cluster/kafka_2.12-2.3.0/bin/kafka-console-consumer.sh --bootstrap-server node3.cn:9092 --topic test --from-beginning
说明:
from-beginning:每次从头开始消费
20、删除topic
[root@node3 ~]# /opt/cluster/kafka_2.12-2.3.0/bin/kafka-topics --delete --zookeeper node3.cn:2181 --topic test
四、集群可视化管理
https://blog.csdn.net/llwy1428/article/details/94389615
至此,Centos7.4 搭建 Kafka 集群 (v2.12-2.3.0),操作完毕!