CentOS 7 安装配置 kafka,并配置开机自启

写在前面:

❌ 你还在这样算排期吗?

撕日历、数周末、翻放假通知......

项目Deadline总算错?调休上班日漏算?

"明明该完成了,怎么又撞上节假日?"

✨ 现在,一切交给「 微信小程序:排期计算器 」!

引言

本文将详细介绍如何在Linux环境下安装并配置Apache Kafka。Kafka是一个分布式流处理平台,广泛应用于消息系统、指标收集、日志聚合等场景。为了顺利运行Kafka,首先需要确保已安装JDK。

一、下载Kafka

访问Kafka官网,根据需求选择合适的版本进行下载。

二、安装Kafka

解压安装包

假设安装目录为/opt/kafka/,执行以下命令解压下载的Kafka压缩包:

bash 复制代码
tar -zvxf kafka_2.11-2.1.0.tgz -C /opt/kafka/

配置修改

编辑Kafka的配置文件server.properties

bash 复制代码
vim /opt/kafka/kafka_2.11-2.1.0/config/server.properties

修改如下内容,确保使用正确的IP地址:

properties 复制代码
listeners=PLAINTEXT://<your-ip>:9092

注:请将<your-ip>替换为本机的实际IP地址。

三、验证安装

启动Zookeeper

进入Kafka安装目录,并启动单节点Zookeeper实例:

bash 复制代码
cd /opt/kafka/kafka_2.11-2.1.0
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

启动Kafka服务

接下来,启动Kafka服务:

bash 复制代码
bin/kafka-server-start.sh config/server.properties

创建Topic

创建一个具有单一副本和分区的名为test的topic:

bash 复制代码
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

发送和接收消息

使用Kafka自带的生产者脚本发送消息:

bash 复制代码
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

然后,在另一个终端中使用消费者脚本接收并打印消息:

bash 复制代码
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

四、配置开机自启

为了实现Kafka及其依赖的Zookeeper服务随系统启动而自动启动,可以使用systemctl进行配置。

创建Systemd服务文件

/lib/systemd/system/目录下创建Zookeeper和Kafka的服务配置文件。

Zookeeper服务配置(zookeeper.service
ini 复制代码
[Unit]
Description=Zookeeper service
After=network.target

[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/java/jdk1.8.0_201/bin"
User=root
Group=root
ExecStart=/usr/local/kafka/kafka_2.12-2.2.0/bin/zookeeper-server-start.sh /usr/local/kafka/kafka_2.12-2.2.0/config/zookeeper.properties
ExecStop=/usr/local/kafka/kafka_2.12-2.2.0/bin/zookeeper-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
Kafka服务配置(kafka.service
ini 复制代码
[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:/usr/local/java/jdk1.8.0_201/bin"
User=root
Group=root
ExecStart=/usr/local/kafka/kafka_2.12-2.2.0/bin/kafka-server-start.sh /usr/local/kafka/kafka_2.12-2.2.0/config/server.properties
ExecStop=/usr/local/kafka/kafka_2.12-2.2.0/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

注:请根据实际安装路径调整上述文件中的路径设置。

刷新配置并启用服务

刷新systemd配置并启用Zookeeper和Kafka服务:

bash 复制代码
systemctl daemon-reload
systemctl enable zookeeper
systemctl enable kafka

使用systemctl管理服务

现在,你可以使用以下命令来启动、停止或重启Zookeeper和Kafka服务:

bash 复制代码
systemctl start zookeeper
systemctl start kafka

systemctl status zookeeper
systemctl status kafka

注意:启动Kafka之前必须先启动Zookeeper。

故障排除

如果遇到Zookeeper无法启动的问题,尝试删除/tmp/zookeeper/version-2/log.*下的临时文件,再重新启动服务。

相关推荐
Doro再努力28 分钟前
Vim 快速上手实操手册:从入门到生产环境实战
linux·编辑器·vim
wypywyp35 分钟前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
Doro再努力1 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene1 小时前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
忧郁的橙子.1 小时前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧1 小时前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮2 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
XiaoFan0122 小时前
免密批量抓取日志并集中输出
java·linux·服务器
souyuanzhanvip2 小时前
ServerBox v1.0.1316 跨平台 Linux 服务器管理工具
linux·运维·服务器
HalvmånEver4 小时前
Linux:线程互斥
java·linux·运维