0


kafka二进制部署(Kraft方式,SASL认证)

集群节点地址示例:
192.168.242.203192.168.242.204192.168.242.205public-1public-2public-3节点1节点2节点3

1. 每个节点关闭防火墙

  1. systemctl stop firewalld.service
  2. systemctl disable firewalld.service

2. 检查每个节点中是否已安装JDK

2.1 查看是否安装jdk

  1. java -version

2.2 如未安装jdk,安装方法

(1) 创建目录
  1. mkdir -p /opt/jdk
(2) 上传java安装包到/opt/jdk
(3) 解压安装包
  1. tar -xvf openlogic-openjdk-8u422-b05-linux-x64.tar.gz
(4) 重命名
  1. mv openlogic-openjdk-8u422-b05-linux-x64 openjdk1.8
(5) 添加环境变量
  1. vi /etc/profile
  2. export JAVA_HOME=/opt/jdk/openjdk1.8
  3. export PATH=$JAVA_HOME/bin:$PATH
  4. source /etc/profile
(6) 检查jdk是否安装成功
  1. java -version

3.修改主机名

  1. (节点1执行) hostnamectl set-hostname public-1
  2. (节点2执行) hostnamectl set-hostname public-2
  3. (节点3执行) hostnamectl set-hostname public-3

4. 修改每个节点hosts

每个节点执行

  1. cat >> /etc/hosts << EOF
  2. 192.168.242.203 public-1
  3. 192.168.242.204 public-2
  4. 192.168.242.205 public-3
  5. EOF

5. 节点1安装kafka

(1) 创建kafka解压目录
  1. mkdir -p /data/kafka
(2) 进入到 /data/kafka
  1. cd /data/kafka
(3) 上传kafka_2.13-3.6.2.tgz到 /data/kafka目录下
(4) 解压kafka_2.13-3.6.2.tgz 到 /data/kafka
  1. tar -xzvf kafka_2.13-3.6.2.tgz
(5) 新建数据目录
  1. mkdir -p /data/kafka/kafka-data
  2. mkdir -p /data/kafka/kafka-logs
(6) 进入到kafka_2.13-3.6.2/config/kraft 修改 Kraft 协议配置文件server.properties

vi server.properties节点唯一标识node.id=1集群信息
controller.quorum.voters=1@public-1:9093,2@public-2:9093,3@public-3:9093
节点信息listeners=SASL_PLAINTEXT://public-1:9092,CONTROLLER://public-1:9093公开监听信息advertised.listeners=SASL_PLAINTEXT://192.168.242.203:9092broker间通信名inter.broker.listener.name=SASL_PLAINTEXT安全协议映射见下文数据目录log.dirs=/data/kafka/kafka-data日志清理频率(时)log.retention.hours=3分区数num.partitions=3认证配置见下文
安全协议映射:

  1. listener.security.protocol.map=CONTROLLER:SASL_PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

认证配置:

  1. sasl.mechanism.inter.broker.protocol=PLAIN
  2. sasl.enabled.mechanisms=PLAIN
  3. sasl.mechanism=PLAIN
  4. allow.everyone.if.no.acl.found=false
  5. super.users=User:admin
  6. authorizer.class.name=org.apache.kafka.metadata.authorizer.StandardAuthorizer
  7. sasl.mechanism.controller.protocol=PLAIN

6. 节点2、节点3按步骤5进行配置

注意修改配置信息

节点2:

  1. node.id=2
  2. listeners=SASL_PLAINTEXT://public-2:9092,CONTROLLER://public-2:9093
  3. advertised.listeners= SASL_PLAINTEXT://192.168.242.204:9092

节点3:

  1. node.id=3
  2. listeners=SASL_PLAINTEXT://public-3:9092,CONTROLLER://public-3:9093
  3. advertised.listeners= SASL_PLAINTEXT://192.168.242.205:9092

其他配置和步骤5一样

7. 创建Kraft账号密码认证文件

每个节点都要创建

  1. cd /data/kafka/kafka_2.13-3.6.2/config/kraft
  2. vi kafka_server_jaas.conf

内容为:

  1. KafkaServer {
  2. org.apache.kafka.common.security.plain.PlainLoginModule required
  3. username="admin"
  4. password="password123!"
  5. user_user1="password123!"
  6. user_user2="password123!";
  7. };

注意body中最后一行一定要有 ; 符号

8. 格式化存储目录

(1) 在任意一个节点上执行如下命令,用于生成一个唯一的集群 ID
  1. cd /data/kafka/kafka_2.13-3.6.2/bin
  2. ./kafka-storage.sh random-uuid
(2) 所有节点执行如下命令,注意其中的 ID替换成上述生成的
  1. cd /data/kafka/kafka_2.13-3.6.2
  2. ./bin/kafka-storage.sh format -t uXXhRtiEQd6rSQ8hsR82Qg -c ./config/kraft/server.properties
(3) 格式化操作完成之后,定义的 log.dirs 目录下多出 meta.properties 文件,文件中存储了当前的 kafka 节点的 id,当前节点属于哪个集群

9. 配置kafka服务的启动脚本

所有节点执行

  1. cd /data/kafka/kafka_2.13-3.6.2/bin
  2. cp kafka-server-start.sh kafka-server-start-sasl.sh

vi kafka-server-start-sasl.sh 将创建的kafka_server_jaas.conf地址添加到启动文件,修改部分为:

  1. if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
  2. export KAFKA_HEAP_OPTS="-Xmx2G -Xms2G -Djava.security.auth.login.config=/data/kafka/kafka_2.13-3.6.2/config/kraft/kafka_server_jaas.conf"
  3. fi

可以根据实际jvm参数在此处调整

10. 修改kafka日志输出目录

每个节点执行

  1. cd /data/kafka/kafka_2.13-3.6.2/bin
  2. vi kafka-run-class.sh,将223左右的日志输出目录修改为上述创建的目录

11. 启动集群

每个节点执行如下命令启动 Kafka** **集群

  1. cd /data/kafka/kafka_2.13-3.6.2
  2. ./bin/kafka-server-start-sasl.sh -daemon ./config/kraft/server.properties
标签: kafka 分布式

本文转载自: https://blog.csdn.net/weixin_47575974/article/details/142651577
版权归原作者 一身轻灬 所有, 如有侵权,请联系我们删除。

“kafka二进制部署(Kraft方式,SASL认证)”的评论:

还没有评论