kafka3.6.0集群部署

环境准备

  • 机器环境

    系统 主机名 IP地址
    centos7.9 kafka01 192.168.200.51
    centos7.9 kafka02 192.168.200.52
    centos7.9 kafka03 192.168.200.53
  • 所需软件

    复制代码
    jdk-8u171-linux-x64.tar.gz
    
    apache-zookeeper-3.8.3-bin.tar.gz
    https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.tar.gz
    
    kafka_2.13-3.6.0.tgz
    https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz
  • hosts设置

    复制代码
    192.168.200.51 kafka01
    192.168.200.52 kafka02
    192.168.200.53 kafka03
  • java环境设置

    复制代码
    mkdir /data/java
    ln -s /data/java/ /opt/
    cd /opt/java
    tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/java/
    
    cat /etc/profile.d/java.sh 
    
    #java
    export JAVA_HOME=/opt/java/jdk1.8.0_171
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    
    source /etc/profile
    java -version

zookeeper安装部署

  • 创建软件安装目录

    复制代码
    mkdir /data/server
  • 解压安装

    复制代码
    tar -zxvf apache-zookeeper-3.8.3-bin.tar.gz -C /data/server/
    ln -s /data/server/apache-zookeeper-3.8.3-bin/ /data/server/zookeeper
    
    # 创建zookeeper数据存储目录
    mkdir /data/server/zookeeper/zkData
    
    # 创建zookeeper标识文件
    echo '1' > /data/server/zookeeper/zkData/myid
  • 修改配置

    复制代码
    cp /data/server/zookeeper/zoo_sample.cfg /data/server/zookeeper/zoo.cfg
    
    vim /data/server/zookeeper/zoo.cfg
    # 修改数据存储目录
    dataDir=/data/server/zookeeper/zkData
    # 添加下列集群配置
    server.1=kafka01:2888:3888
    server.2=kafka02:2888:3888
    server.3=kafka03:2888:3888
  • 分发软件

    复制代码
    # 分发软件至kafka02
    scp -r /data/server/apache-zookeeper-3.8.3-bin/ kafka02:/data/server/
    
    # 分发软件至kafka03
    scp -r /data/server/apache-zookeeper-3.8.3-bin/ kafka03:/data/server/
  • kafka02与kafka03软链接

    复制代码
    ln -s /data/server/apache-zookeeper-3.8.3-bin/ /data/server/zookeeper
  • kafka02与kafka03修改myid

    复制代码
    # kafka02修改myid
    echo '2' > /data/server/zookeeper/zkData/myid
    
    # kafka03修改myid
    echo '3' > /data/server/zookeeper/zkData/myid
  • 防火墙放行端口

    复制代码
    firewall-cmd --zone=public --permanent --add-port={2181,2888,3888}/tcp
    firewall-cmd --reload
  • 设置开机自启

    复制代码
    vim /etc/systemd/system/zookeeper.service
    
    [Unit]
    Description=zookeeper service
    After=network.target
     
    [Service]
    User=root
    Group=root 
    Type=forking
    Environment="JAVA_HOME=/opt/java/jdk1.8.0_171"
    ExecStart=/data/server/zookeeper/bin/zkServer.sh start
    ExecStop=/data/server/zookeeper/bin/zkServer.sh stop
    PrivateTmp=false
    Restart=always
     
    [Install]
    WantedBy=multi-user.target
    
    systemctl daemon-reload
    systemctl start zookeeper
    systemctl enable zookeeper
  • zookeeper状态查看

    • kafka01

      复制代码
      [root@kafka01 ~]# jps
      4049 Jps
      3899 QuorumPeerMain
      
      
      [root@kafka01 ~]# /data/server/zookeeper/bin/zkServer.sh status
      ZooKeeper JMX enabled by default
      Using config: /data/server/zookeeper/bin/../conf/zoo.cfg
      Client port found: 2181. Client address: localhost. Client SSL: false.
      Mode: follower
    • kafka02

      复制代码
      [root@kafka02 zookeeper]# jps
      2705 QuorumPeerMain
      2920 Jps
      
      
      [root@kafka02 zookeeper]# /data/server/zookeeper/bin/zkServer.sh status
      ZooKeeper JMX enabled by default
      Using config: /data/server/zookeeper/bin/../conf/zoo.cfg
      Client port found: 2181. Client address: localhost. Client SSL: false.
      Mode: follower
    • kafka03

      # 复制代码
      [root@kafka03 zookeeper]# jps
      3187 Jps
      3030 QuorumPeerMain
      
      
      [root@kafka03 ~]# /data/server/zookeeper/bin/zkServer.sh status
      ZooKeeper JMX enabled by default
      Using config: /data/server/zookeeper/bin/../conf/zoo.cfg
      Client port found: 2181. Client address: localhost. Client SSL: false.
      Mode: leader

kafka安装部署

  • 解压安装

    复制代码
    tar -zxvf kafka_2.13-3.6.0.tgz -C /data/server/
    ln -s /data/server/kafka_2.13-3.6.0/ /data/server/kafka
  • 修改配置

    复制代码
    vim /data/server/kafka/config/server.properties
    broker.id=0
    # 日志目录
    log.dirs=/data/server/kafka/kafka-logs
    
    # zookeeper连接地址及目录
    zookeeper.connect=kafka01:2181,kafka02:2181,kafka03:2181/kafka
  • 分发软件

    复制代码
    # 分发软件至kafka02
    scp -r /data/server/kafka_2.13-3.6.0/ kafka02:/data/server/
    
    分发软件至kafka03
    scp -r /data/server/kafka_2.13-3.6.0/ kafka03:/data/server/
  • kafka02与kafka03软链接

    复制代码
    ln -s /data/server/kafka_2.13-3.6.0/ /data/server/kafka
  • 修改kafka02和kafka03的broker.id

    复制代码
    vim /data/server/kafka/config/server.properties
    
    # kafka02
    broker.id=1
    
    # kafka03
    broker.id=2
  • 防火墙放行端口

    复制代码
    firewall-cmd --zone=public --permanent --add-port=9092/tcp
    firewall-cmd --reload
  • 开机自启

    复制代码
    vim /etc/systemd/system/kafka.service
    
    [Unit]
    Description=kafka service
    After=network.target
     
    [Service]
    User=root
    Group=root 
    Type=forking
    Environment="JAVA_HOME=/opt/java/jdk1.8.0_171"
    ExecStart=/data/server/kafka/bin/kafka-server-start.sh -daemon /data/server/kafka/config/server.properties
    ExecStop=/data/server/kafka/bin/kafka-server-stop.sh 
    PrivateTmp=false
    Restart=always
     
    [Install]
    WantedBy=multi-user.target
    
    systemctl daemon-reload
    systemctl start kafka
    systemctl enable kafka
  • 最终效果

    • kafka01

      复制代码
      [root@kafka01 ~]# jps
      5444 Kafka
      8661 Jps
      3899 QuorumPeerMain
    • kafka02

      复制代码
      [root@kafka02 ~]# jps
      2705 QuorumPeerMain
      3538 Jps
      3373 Kafka
    • kafka03

      复制代码
      [root@kafka03 ~]# jps
      3668 Kafka
      3030 QuorumPeerMain
      3896 Jps
相关推荐
xin_yao_xin3 分钟前
Windows 下 Docker Desktop 安装教程及常用命令(2026 最新)
运维·docker·容器
春日见20 分钟前
云服务器开发与SSH
运维·服务器·人工智能·windows·git·自动驾驶·ssh
minji...30 分钟前
Linux 进程间通信(三)命名管道
linux·服务器·网络
还是做不到嘛\.36 分钟前
DVWA靶场-Brute Force
运维·服务器·数据库·学习
克莱因3581 小时前
linux主机名与Hosts映射 (顺带个DNS简介
linux·运维·服务器
XMAIPC_Robot1 小时前
基于RK3588 ARM+FPGA的电火花数控系统设计与测试(三)
运维·arm开发·人工智能·fpga开发·边缘计算
Elastic 中国社区官方博客1 小时前
现已正式发布: Elastic Cloud Hosted 上的托管 OTLP Endpoint
大数据·运维·数据库·功能测试·elasticsearch·全文检索
意疏2 小时前
【Linux 篇】Docker 容器星河与镜像灯塔:Linux 系统下解锁应用部署奇幻征程
linux·docker
LDG_AGI2 小时前
【人工智能】OpenClaw(一):MacOS极简安装OpenClaw之Docker版
运维·人工智能·深度学习·机器学习·docker·容器·推荐算法
朱包林2 小时前
k8s-Pod基础管理,标签管理,rc控制器及重启策略实战
linux·运维·云原生·容器·kubernetes·云计算