Kafka3.2.0 + kraft集群安装部署说明

1、安装环境说明

  • 麒麟操作系统10 Kafka 版本:3.2.0
  • 采用4节点部署
    JDK版本:建议安装JDK11或JDK17。本次部署采用:jdk-11.0.16.1
  • 服务器角色如下表:
主机名称	     主机IP	          角色  	  node.id
KAFKA001	10.999.888.54	broker,controller	1
KAFKA002	10.999.888.233	broker, controller	2
KAFKA003	10.999.888.56	broker, controller	3
KAFKA004	10.999.888.170	broker          	4

2、修改主机名

sudo hostnamectl set-hostname KAFKA001
sudo hostnamectl set-hostname KAFKA002
sudo hostnamectl set-hostname KAFKA003
sudo hostnamectl set-hostname KAFKA004

3、修改hosts配置

#vim /etc/hosts
10.999.888.54 	KAFKA001
10.999.888.233 	KAFKA002
10.999.888.56 	KAFKA003
10.999.888.170 	KAFKA004

4、安装JDK

略。。。

5、建立软连接

如果不配置,则会报以下错误:

/opt/softwares/kafka_2.12-3.2.0/bin/kafka-run-class.sh: line 342: exec: java

原因是:Kafka的默认/usr/bin/java路径与我们实际的$JAVA_HOME/bin/java路径不一致导致的
配置命令:

 sudo rm -fr /usr/bin/java
 sudo ln -s /opt/softwares/jdk-11.0.16.1/bin/java /usr/bin/java

6、下载kafka_2.12-3.2.0.tgz并解压

sudo tar –zxvf kafka_2.12-3.2.0.tgz –C /opt/softwares

并修改权限:

sudo chown user:user -R jdk-11.0.16.1
sudo chown user:user -R kafka_2.12-3.2.0

7、修改kafka配置文件

先在/data目录下创建data文件夹和logs文件夹

sudo mkdir -p /data/kafka/data
sudo mkdir -p /data/kafka/logs

修改文件权限:

sudo chmod 777 -R /data

之后配置server.properties文件

vim /opt/softwares/kafka_2.12-3.2.0/config/kraft/server.properties

7.1、KAFKA001节点配置

#kafka的角色(controller相当于主机、broker节点相当于从机,主机类似zk功能)
process.roles=broker, controller
#节点ID(不同节点配置不同)
node.id=1
#controller服务协议别名
controller.listener.names=CONTROLLER
#全Controller列表
controller.quorum.voters=1@KAFKA001:9093
#不同服务器绑定的端口
listeners=PLAINTEXT://KAFKA001:19092,CONTROLLER://KAFKA001:9093
#broker服务协议别名
inter.broker.listener.name=PLAINTEXT
#broker对外暴露的地址(不同节点配置不同)
advertised.Listeners=PLAINTEXT://KAFKA001:19092
#协议别名到安全协议的映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
#kafka数据存储目录
log.dirs=/opt/softwares/kafka_2.12-3.2.0/data
#不允许自动创建topic,只通过命令创建
auto.create.topics.enable=false
delete.topic.enable=true

7.2、KAFKA002节点配置

#kafka的角色(controller相当于主机、broker节点相当于从机,主机类似zk功能)
process.roles=broker, controller
#节点ID(不同节点配置不同)
node.id=2
#controller服务协议别名
controller.listener.names=CONTROLLER
#全Controller列表
controller.quorum.voters=1@KAFKA001:9093,2@KAFKA002:9093
#不同服务器绑定的端口
listeners=PLAINTEXT://KAFKA002:19092,CONTROLLER://KAFKA002:9093
#broker服务协议别名
inter.broker.listener.name=PLAINTEXT
#broker对外暴露的地址(不同节点配置不同)
advertised.Listeners=PLAINTEXT://KAFKA002:19092
#协议别名到安全协议的映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
#kafka数据存储目录
log.dirs=/opt/softwares/kafka_2.12-3.2.0/data
#不允许自动创建topic,只通过命令创建
auto.create.topics.enable=false
delete.topic.enable=true

7.3、KAFKA003节点配置

#kafka的角色(controller相当于主机、broker节点相当于从机,主机类似zk功能)
process.roles=broker, controller
#节点ID(不同节点配置不同)
node.id=3
#controller服务协议别名
controller.listener.names=CONTROLLER
#全Controller列表
controller.quorum.voters=1@KAFKA001:9093,2@KAFKA002:9093,3@KAFKA003:9093
#不同服务器绑定的端口
listeners=PLAINTEXT://KAFKA003:19092,CONTROLLER://KAFKA003:9093
#broker服务协议别名
inter.broker.listener.name=PLAINTEXT
#broker对外暴露的地址(不同节点配置不同)
advertised.Listeners=PLAINTEXT://KAFKA003:19092
#协议别名到安全协议的映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
#kafka数据存储目录
log.dirs=/opt/softwares/kafka_2.12-3.2.0/data
#不允许自动创建topic,只通过命令创建
auto.create.topics.enable=false
delete.topic.enable=true

7.4、KAFKA004节点配置

#kafka的角色(controller相当于主机、broker节点相当于从机,主机类似zk功能)
process.roles=broker
#节点ID(不同节点配置不同)
node.id=4
#controller服务协议别名
controller.listener.names=CONTROLLER
#全Controller列表
controller.quorum.voters=1@KAFKA001:9093,2@KAFKA002:9093,3@KAFKA003:9093
#不同服务器绑定的端口
listeners=PLAINTEXT://KAFKA004:19092
#broker服务协议别名
inter.broker.listener.name=PLAINTEXT
#broker对外暴露的地址(不同节点配置不同)
advertised.Listeners=PLAINTEXT://KAFKA004:19092
#协议别名到安全协议的映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
#kafka数据存储目录
log.dirs=/opt/softwares/kafka_2.12-3.2.0/data
#不允许自动创建topic,只通过命令创建
auto.create.topics.enable=false
delete.topic.enable=true

8、初始化kafka集群数据目录

(1) 在KAFKA001机器上执行

./bin/kafka-storage.sh random-uuid

可以看到生成ID:_nOVlsByS8qnh4sFJEKvgg
(2) 用该ID格式化Kafka存储目录(4台节点)

[user@KAFKA001 kafka_2.12-3.2.0]# ./bin/kafka-storage.sh format -t _nOVlsByS8qnh4sFJEKvgg -c /opt/module/kafka/config/kraft/server.properties
[user@KAFKA002 kafka_2.12-3.2.0]# ./bin/kafka-storage.sh format -t _nOVlsByS8qnh4sFJEKvgg -c /opt/module/kafka/config/kraft/server.properties
[user@KAFKA003 kafka_2.12-3.2.0]# ./bin/kafka-storage.sh format -t _nOVlsByS8qnh4sFJEKvgg -c /opt/module/kafka/config/kraft/server.properties
[user@KAFKA004 kafka_2.12-3.2.0]# ./bin/kafka-storage.sh format -t _nOVlsByS8qnh4sFJEKvgg -c /opt/module/kafka/config/kraft/server.properties

9、Kafka常用命令

a.启动:sudo ./bin/kafka-server-start.sh -daemon ./config/kraft/server.properties
b.关闭:sudo ./bin/kafka-server-stop.sh ./config/kraft/server.properties
c.创建topic:
./bin/kafka-topics.sh --create --topic aa --partitions 3 --replication-factor 2 --bootstrap-server KAFKA001:19092,KAFKA002:19092,KAFKA003:19092,KAFKA004:19092
d.创建生产者:
 ./kafka-console-producer.sh --broker-list KAFKA001:19092,KAFKA002:19092,KAFKA003:19092,KAFKA004:19092 --topic aa
e.创建消费者:
 ./kafka-console-consumer.sh --bootstrap-server  KAFKA001:19092,KAFKA002:19092,KAFKA003:19092,KAFKA004:19092 --topic aa --from-beginning
f.查看topic:
./bin/kafka-topics.sh --list --bootstrap-server KAFKA001:19092,KAFKA002:19092,KAFKA003:19092,KAFKA004:19092
g.删除topic:
./bin/kafka-topics.sh --delete --topic aa  --bootstrap-server KAFKA001:19092,KAFKA002:19092,KAFKA003:19092,KAFKA004:19092
h.查看topic详细信息:
./bin/kafka-topics.sh --bootstrap-server KAFKA001:19092,KAFKA002:19092,KAFKA003:19092,KAFKA004:19092 --describe --topic aa

10、查看kafka启动情况

sudo lsof -i :19092

11、用Offest Explorer可视化工具连接kafka集群

(1)配置映射
到windows机器的C:\Windows\System32\drivers\etc\hosts

10.999.888.54 	KAFKA001
10.999.888.233 	KAFKA002
10.999.888.56 	KAFKA003
10.999.888.170 	KAFKA004

(2)安装Offest Explorer 工具 (一直点next即可)

(3)打开Offest Explorer工具,点击左上角File—Add New Connection

选择Properties配置以下内容:

Kafka3.2.0 + kraft集群安装部署说明_第1张图片

配置成功!!!

你可能感兴趣的:(kafka,java,分布式,大数据)