更新时间:2024-12-06 GMT+08:00

安装Kafka

简介

Kafka是一个拥有高吞吐、可持久化、可水平扩展,支持流式数据处理等多种特性的分布式消息流处理中间件,采用分布式消息发布与订阅机制,在日志收集、流式数据传输、在线/离线系统分析、实时监控等领域有广泛的应用。

本教程介绍如何在HCE 2.0上安装部署Kafka。

准备工作

  • 准备一台ECS,并分配公网IP或者弹性公网IP(EIP)。
  • 安全组入方向已放开9092端口

操作步骤

  1. 安装kafka软件。

    执行以下命令安装软件。

    dnf install kafka

    执行结束后,Kafka会被安装到/opt/kafka目录。

  2. 软件配置。

    1. 编辑“/opt/kafka/config/server.properties”文件,找到如下属性进行修改。
      listeners=PLAINTEXT://<内网IP>:9092 
      advertised.listeners=PLAINTEXT://<公网IP>:9092
    2. 新建“/lib/systemd/system/zookeeper.service”文件,并输入以下内容。
      [Unit]
      Description=Zookeeper service
      After=network.target
      
      [Service]
      Type=simple
      Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      User=root
      Group=root
      ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
      ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
      Restart=on-failure
      SuccessExitStatus=143
      
      [Install]
      WantedBy=multi-user.target
    3. 新建“/lib/systemd/system/kafka.service”文件,并输入以下内容。
      [Unit]
      Description=Apache Kafka server (broker)
      After=network.target  zookeeper.service
      
      [Service]
      Type=simple
      Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      User=root
      Group=root
      ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
      ExecStop=/opt/kafka/bin/kafka-server-stop.sh
      Restart=on-failure
      SuccessExitStatus=143
      
      [Install]
      WantedBy=multi-user.target
    4. 依次输入以下命令,启动Kafka和Zookeeper服务。
      systemctl daemon-reload
      systemctl start zookeeper
      systemctl start kafka

  3. 验证。

    1. 使用以下命令创建Topic。
       /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
    2. 使用以下命令查看刚才创建的Topic。
      /opt/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181

      如果部署正常,则会输出test

以上相关配置仅用于测试,业务环境请谨慎使用。