# Kafka安装
#### 简介
Kafka是一个拥有高吞吐、可持久化、可水平扩展、支持流式数据处理等多种特性的分布式消息流处理中间件，采用分布式消息发布与订阅机制，在日志收集、流式数据传输、在线/离线系统分析、实时监控等领域有广泛的应用。本教程介绍如何在HCE上安装部署Kafka。
#### 准备工作
- 准备一台ECS，并分配公网IP或者弹性公网IP（EIP）。
 
- 安全组入方向已放通9092端口。
#### 前置条件
已完成本机yum源的配置，可参考[HCE的REPO源配置](https://support.huaweicloud.com/usermanual-hce/hce_repo.html)进行yum源的配置。
#### 操作步骤
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**。
      
   
   
   
   
 
![](https://support.huaweicloud.com/bestpractice-hce/public_sys-resources/caution_3.0-zh-cn.png)
以上相关配置仅用于测试，业务环境请谨慎使用。
