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.*下的临时文件,再重新启动服务。

相关推荐
Felven39 分钟前
stress-ng 与 fio 性能测试工具使用指南
linux·测试工具·fio·stress-ng
huainingning2 小时前
RJ SW Console口忘记密码处理方法
linux·运维·服务器
布裘2 小时前
【银河麒麟】桌面系统循环登录,无法进入桌面?
linux·运维·服务器
慧都小项2 小时前
程序到了Linux才出错?用CLion把调试接到目标环境
linux·运维·服务器
Ruiery4 小时前
Linux 6.6内核内存管理深度解析(一):物理内存初始化 — memblock 怎么把内存交给 buddy
linux·运维·服务器
天蓝蓝的本我4 小时前
conda日常用到的命令积累1-登录linux,安装pycharm
linux·pycharm·conda
Android系统攻城狮5 小时前
Linux Gstreamer深度解析之gst_audio_encoder_get_frame_max调用流程与实战(五十九)
linux·运维·服务器·gstreamer音视频·音视频进阶·gstreamer音视频进阶
忆挽篱笙歌5 小时前
makefil
linux·运维·服务器
菜_小_白6 小时前
codex
linux·vscode·ai
zhangrelay6 小时前
用ROS2Lyrical实验报告册思路重做蓝桥云课ROS1实验并改进
linux·笔记·学习·ubuntu·机器人