首先我们需要的软件机环境如下
- 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
- 运行 zookeeper
- 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
- 使用 ps 命令检查 supervisor 是否正常运行
- 安装 java 后请使用
- 配置 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
- 配置完后,运行
重启 zookeeper 和 kafka 服务sudo supervisorctl reload
- 使用
命令查看服务是否启动成功,如下则启动成功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 提前启动
- supervisor 的配置文件放在 /etc/supervisord.conf ,文件的最后一行告诉我们,进程的配置文件应该放到 /etc/supervisord.d/*.ini