Kafka 安装与配置

1. 安装 Kafka

环境依赖

  • Zookeeper:确保 Zookeeper 已启动。使用以下命令启动 Zookeeper:

    1
    zkServer.sh start

安装步骤

  1. 解压 Kafka 软件包

    1
    tar -zxvf /opt/software/kafka_2.11-2.4.1.tgz -C /opt/module
  2. 移动 Kafka 目录

    1
    mv /opt/module/kafka_2.11-2.4.1 /opt/module/kafka

2. 配置环境变量

  1. 编辑 /etc/profile 文件,添加 Kafka 环境变量:

    1
    2
    export KAFKA_HOME=/opt/module/kafka
    export PATH=$PATH:$KAFKA_HOME/bin
  2. 重新加载配置

    1
    source /etc/profile

3. 配置 Kafka

配置文件

  1. 创建日志目录

    1
    mkdir /opt/module/kafka/logs
  2. 编辑 server.properties 文件(位于 /opt/module/kafka/config):

    • Master 节点配置

      1
      2
      3
      4
      5
      6
      7
      broker.id=0
      host.name=192.168.15.150
      listeners=PLAINTEXT://192.168.15.150:9092
      advertised.listeners=PLAINTEXT://192.168.15.150:9092
      log.dirs=/opt/module/kafka/logs
      zookeeper.connect=master:2181,slave1:2181,slave2:2181
      delete.topic.enable=true
    • Slave1 节点配置

      1
      2
      3
      4
      5
      6
      7
      broker.id=1
      host.name=192.168.15.151
      listeners=PLAINTEXT://192.168.15.151:9092
      advertised.listeners=PLAINTEXT://192.168.15.151:9092
      log.dirs=/opt/module/kafka/logs
      zookeeper.connect=master:2181,slave1:2181,slave2:2181
      delete.topic.enable=true
    • Slave2 节点配置

      1
      2
      3
      4
      5
      6
      7
      broker.id=2
      host.name=192.168.15.152
      listeners=PLAINTEXT://192.168.15.152:9092
      advertised.listeners=PLAINTEXT://192.168.15.152:9092
      log.dirs=/opt/module/kafka/logs
      zookeeper.connect=master:2181,slave1:2181,slave2:2181
      delete.topic.enable=true
  3. 修改 Kafka 启动脚本(位于 /opt/module/kafka/bin):

    • **编辑 kafka-server-start.sh**,设置 JVM 堆内存:

      1
      2
      3
      if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
      export KAFKA_HEAP_OPTS="-Xmx256M -Xms256M"
      fi

4. 部署配置

  1. 将环境配置文件和 Kafka 目录复制到从节点

    1
    2
    3
    4
    scp /etc/profile slave1:/etc/
    scp /etc/profile slave2:/etc/
    scp -r /opt/module/kafka/ slave1:/opt/module/
    scp -r /opt/module/kafka/ slave2:/opt/module/

5. 启动 Kafka

  1. 启动 Kafka 服务

    1
    2
    cd /opt/module/kafka/bin
    ./kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
  2. 创建 Kafka 主题

    1
    kafka-topics.sh --create --bootstrap-server master:9092 --replication-factor 2 --partitions 2 --topic installtopic
  3. 列出 Kafka 主题

    1
    kafka-topics.sh --bootstrap-server master:9092 --list
  4. 检查进程状态

    1
    jps

6. 常见问题解决

  1. Kafka 启动后自动关闭

    • 关闭防火墙,然后重新启动 Zookeeper 和 Kafka:

      1
      2
      3
      4
      sudo systemctl stop firewalld
      sudo systemctl disable firewalld
      zkServer.sh start
      kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
    • 检查日志文件:查看 Kafka 日志中的 meta.properties 文件,确保配置文件中的 broker.id 是唯一的。

    • 重新启动 Kafka

      1
      jps