说明

  • centos源码编译安装为例

步骤

  1. 安装JDKsudo yum install -y java-1.8.0-openjdk
  2. 查看是否安装成功:java -version
    1
    2
    3
    openjdk version "1.8.0_322"
    OpenJDK Runtime Environment (build 1.8.0_322-b06)
    OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)
  3. 配置Java环境变量
    1
    2
    3
    4
    5
    6
    7
    8
    ##### 检查一下环境种是否有Java变量, 没有任何输出表示没有相应环境
    echo $JAVA_HOME

    ##### 配置环境
    echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile

    ##### 文件生效
    source /etc/profile
  4. 官网下载kafka安装包,wget https://dlcdn.apache.org/kafka/3.2.0/kafka_2.12-3.2.0.tgz
  5. 解压到指定路径, sudo tar -zvxf kafka_2.12-3.2.0.tgz -C /opt/
  6. 创建一个文件的软连接,这样可以方便进行kafka的升级, sudo ln -s /opt/kafka_2.12-3.2.0 /opt/kafka
  7. 进入kafka目录,启动zookeepersudo bin/zookeeper-server-start.sh config/zookeeper.properties
  8. 新开一个终端,进入kafka文件夹,启动kafkabin/kafka-server-start.sh config/server.properties
  9. 配置系统单元服务进行启动kafkazookeeper
    • 配置zookeeper:

      • 添加文件:sudo vim /etc/systemd/system/zookeeper.service
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        [Unit]
        Description=Apache Zookeeper server
        Documentation=http://zookeeper.apache.org
        Requires=network.target remote-fs.target
        After=network.target remote-fs.target

        [Service]
        Type=simple
        ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
        ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
        Restart=on-abnormal
        User=root
        Group=root

        [Install]
        WantedBy=multi-user.target
      • 验证一下是否配置成功
        1
        2
        3
        sudo systemctl start zookeeper
        sudo systemctl status zookeeper
        sudo systemctl stop zookeeper
    • 配置kafka

      • 添加文件:sudo vim /etc/systemd/system/kafka.service

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
           [Unit]
        Description=Apache Kafka Server
        Documentation=http://kafka.apache.org/documentation.html
        Requires=zookeeper.service

        [Service]
        Type=simple
        ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
        ExecStop=/opt/kafka/bin/kafka-server-stop.sh
        Restart=on-abnormal

        [Install]
        WantedBy=multi-user.target
      • 验证一下是否配置成功

        1
        2
        3
        sudo systemctl start kafka
        sudo systemctl status kafka
        sudo systemctl stop kafka
  10. 测试,生产者消费者发消息
    1. 进入到kafka目录下,通过下面命令创建一个kafka topic:bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic bin/kafka-topics.sh --create -bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic testTopic
      • 报错: img
      • 解决:使用 Kafka Broker的 --bootstrap-server localhost:9092来替代 --zookeeper localhost:2181
      • 参考
    2. 查看创建了多少个topic: bin/kafka-topics.sh --list --zookeeper localhost:2181 bin/kafka-topics.sh --list --bootstrap-server localhost:9092
      img
    3. 通过生产者进行发送消息: bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic
    4. 创建一个消费者来进行接收消息: bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning
    5. 测试成功
      img

参考

  1. centos 安装kafka
  2. kafka安装教程