天天看点

centos8 安装 kafka 并使用 supervisor 守护 kafka 进程

首先我们需要的软件机环境如下

  • centos 8
  • java
  • kafka
  • supervisor

首先我们需要先下载 java ,因为 kafka 运行需要 jdk 环境,其次我们需要下载 kafka 的二进制包,最后安装supervisor 守护 kafka 的进程

  • 安装的主要命令依次如下
    cd ~
    yum install java
    wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.4.0/kafka_2.12-2.4.0.tgz
    tar -zxvf  kafka_2.12-2.4.0.tgz  -C /usr/local
    cd /usr/local
    mv   kafka_2.12-2.4.0  kafka
    yum install epel-release
    yum install supervisor
               
  • 验证程序是否安装成功
    • 安装 java 后请使用

      java -version

      若出现如下信息则说明安装成功
      [[email protected] ~]$ java -version
      openjdk version "1.8.0_232"
      OpenJDK Runtime Environment (build 1.8.0_232-b09)
      OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
                 
    • 安装 kafka 可以在本机,运行如下命令测试 kafka 是否正常运行

      因为 kafka 依托于 zookeeper 运行,最新的 kafka 已经集成了 zookeeper ,所以我们要先运行 zookeeper 在运行 kafka

      • 运行 zookeeper
        /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
                   
      • 运行 kafka
        /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
                   
    • supervisor 由于是使用 yum 安装,使用直接使用

      systemctl start supervisord.service

      运行
      • 使用 ps 命令检查 supervisor 是否正常运行
        [[email protected] ~]$ ps -ef|grep supervisor
        root       946     1  0 13:50 ?        00:00:01 /usr/bin/python3.6 /usr/bin/supervisord -c /etc/supervisord.conf
        vagrant   5636  5069  0 16:09 pts/0    00:00:00 grep --color=auto supervisor
                   
      • 使用 systemctl 命令检查 supervisor 是否正常运行
        [[email protected] ~]$ systemctl status supervisord.service 
        ● supervisord.service - Process Monitoring and Control Daemon
           Loaded: loaded (/usr/lib/systemd/system/supervisord.service; enabled; vendor preset: disabled)
           Active: active (running) since Tue 2019-12-24 13:50:13 UTC; 2h 20min ago
          Process: 788 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS)
         Main PID: 946 (supervisord)
            Tasks: 111 (limit: 26213)
           Memory: 689.1M
                   
  • 配置 supervisor
    • supervisor 的配置文件放在 /etc/supervisord.conf ,文件的最后一行告诉我们,进程的配置文件应该放到 /etc/supervisord.d/*.ini
      [include]
      files = supervisord.d/*.ini
                 
    • 因为默认的配置文件是以 .ini 结尾的,使用我们配置守护进程的配置文件名需要以 .ini 结尾
      touch kafka.ini
      touch zookeeper.ini
                 
    • kafka.ini 和 zookeeper.ini 文件内容如下
      [program:kafka]
      command=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
      user=root
      autostart=true
      autorestart=true
      startsecs=6
      
      ------------
      
      
      [program:zookeeper]
      command=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
      user=root
      autostart=true
      autorestart=true
      startsecs=3
                 
    • 配置完后,运行

      sudo supervisorctl reload

      重启 zookeeper 和 kafka 服务
    • 使用

      sudo supervisorctl status

      命令查看服务是否启动成功,如下则启动成功
      [[email protected] supervisord.d]$ sudo supervisorctl status
      kafka                            RUNNING   pid 4128, uptime 2:40:54
      zookeeper                        RUNNING   pid 1186, uptime 2:41:05
                 
    • 注意 kafka.ini 的重启时间 startsecs 一定要比 zookeeper 大,因为 kafka 依赖 zookeeper ,需要 zookeeper 提前启动