0


一篇文章告诉你CentOS7中从0到1搭建kafka消息中间件

在 CentOS 7 上安装 Apache Kafka 需要一些准备步骤,主要包括安装必要的依赖、下载 Kafka 以及配置 Zookeeper 和 Kafka 服务。下面我将展开详细的安装步骤说明:

1. 系统更新与安装 Java

首先,更新你的系统并安装 Java,因为 Kafka 是用 Java 写的,需要 Java 环境。

sudo yum update -ysudo yum install java-1.8.0-openjdk -y

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 验证 Java 安装

安装完成后,你可以验证 Java 是否正确安装:

java-version

这应该会显示已安装的 Java 版本。
在这里插入图片描述

3. 下载和解压 Kafka

接下来,从 Apache Kafka 的官方网站下载所需版本的 Kafka。你可以使用

wget

命令来下载:

cd /opt
wget https://downloads.apache.org/kafka/3.7.0/kafka_2.12-3.7.0.tgz
tar-xzf kafka_2.12-3.7.0.tgz
mv kafka_2.12-3.7.0 kafka
cd kafka

4. 启动 Zookeeper

由于 Kafka 使用 Zookeeper 来维护集群状态,你需要首先启动 Zookeeper。Kafka 包中包含了一个单节点的 Zookeeper 配置。

bin/zookeeper-server-start.sh config/zookeeper.properties

在这里插入图片描述

这个命令将启动 Zookeeper。建议在生产环境中运行 Zookeeper 集群。

5. 启动 Kafka 服务

在新的终端窗口或后台作业中,启动 Kafka 服务器:

bin/kafka-server-start.sh config/server.properties

在这里插入图片描述

6. 创建 Kafka 主题

为了开始使用 Kafka,你可以创建一个 Kafka 主题,以便生产者和消费者可以使用它:

bin/kafka-topics.sh --create--topictest --bootstrap-server localhost:9092 --replication-factor 1--partitions1

在这里插入图片描述

7. 验证 Kafka 安装

你可以通过 Kafka 提供的命令行工具来验证安装是否成功。首先,启动一个命令行生产者:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topictest

在这里插入图片描述

然后在另一个终端,启动一个命令行消费者:

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topictest --from-beginning

在这里插入图片描述

现在你可以在生产者窗口输入消息,然后在消费者窗口查看这些消息是否已被接收。

8. 配置防火墙

如果你的机器启用了防火墙,确保打开相应的端口供外部访问:

sudo firewall-cmd --zone=public --add-port=2181/tcp --permanent# Zookeeper 默认端口sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent# Kafka 默认端口sudo firewall-cmd --reload

9. 设置 Kafka 作为系统服务

为了使 Kafka 和 Zookeeper 在系统启动时自动运行,可以将它们配置为系统服务。

将kafka设置为系统服务

要在 CentOS 7 上检查 Kafka 服务是否已启动,并决定是否需要重新启动服务,你可以按照以下步骤进行:

1. 检查 Kafka 进程

使用

ps

命令来查找运行中的 Kafka 进程:

ps-ef|grep kafka

这个命令会列出所有包含 “kafka” 的进程。如果你看到类似的输出,说明 Kafka 服务器正在运行:

kafka     285615 Jun25 ?        01:27:55 /usr/bin/java -Xmx1G-Xms1G-server-XX:+UseG1GC-Djava.awt.headless=true -Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dkafka.logs.dir=/var/log/kafka -Dlog4j.configuration=file:/opt/kafka/config/log4j.properties -cp /opt/kafka/libs/* kafka.Kafka /opt/kafka/config/server.properties

如果没有找到 Kafka 进程,那么 Kafka 服务可能没有运行。

2. 使用 Kafka 工具检查服务状态

如果 Kafka 的进程正在运行,你可以使用 Kafka 提供的管理工具来进一步检查服务的状态。例如,你可以使用

kafka-topics.sh

脚本来列出当前的 Kafka 主题,如果这个命令成功执行并返回主题列表,那么通常意味着 Kafka 正在运行:

/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
3. 查看 Kafka 日志

Kafka 的日志文件可以提供关于其状态和任何问题的更多信息。通常,日志文件位于 Kafka 的

logs

目录:

cat /opt/kafka/logs/server.log

检查这些日志以查找任何错误或警告消息,这些信息可能会提示 Kafka 是否遇到问题。

4. 重启 Kafka 服务

如果你确定 Kafka 需要重启(例如,配置更改后或服务未正常运行),可以使用以下命令来安全重启 Kafka:

/opt/kafka/bin/kafka-server-stop.sh
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

这些命令首先停止正在运行的 Kafka 服务,然后重新启动服务。

5. 设置 Kafka 作为系统服务

将 Kafka 设置为系统服务,可以使用

systemctl

命令来管理 Kafka 的启动、停止和重启。以下是一个示例 systemd 服务文件 (

/etc/systemd/system/kafka.service

):

[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

创建完文件后,重新加载 systemd 配置,并启用 Kafka 服务:

sudo systemctl daemon-reload
sudo systemctl enable kafka
sudo systemctl start kafka

通过这些步骤,可以有效地检查和管理 Kafka 服务的状态,确保它在需要时可靠地运行。

将Zookeeper设置为系统服务

在 CentOS 7 上检查 Zookeeper 服务的状态以及决定是否需要重新启动,可以通过以下几个步骤来完成:

1. 检查 Zookeeper 进程

首先,你可以使用

ps

命令来查找运行中的 Zookeeper 进程:

ps-ef|grep zookeeper

这个命令会列出所有包含 “zookeeper” 的进程。如果你看到类似的输出,说明 Zookeeper 正在运行:

zookeeper  320110 09:00 ?        00:00:10 java-Dzookeeper.log.dir=... -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/kafka/lib/zookeeper-*.jar:... org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/kafka/config/zookeeper.properties

如果没有找到任何进程,那么 Zookeeper 可能没有运行。

2. 使用 Zookeeper 客户端检查服务状态

如果 Zookeeper 的进程正在运行,你可以进一步使用 Zookeeper 的客户端命令来检查服务的健康状况:

echostat|nc localhost 2181

或者

/opt/kafka/bin/zookeeper-shell.sh localhost:2181 ls /

这些命令会连接到 Zookeeper 服务并尝试从服务中获取信息。

nc

zookeeper-shell.sh

应该会返回一些服务状态信息,如 Zookeeper 版本、连接数、节点等信息。

3. 查看 Zookeeper 日志

Zookeeper 的日志文件可以提供更多关于其状态和任何问题的信息。通常,日志文件位于 Kafka 的

logs

目录或者 Zookeeper 设置的特定日志目录:

cat /opt/kafka/logs/zookeeper.out
4. 重启 Zookeeper 服务

如果你确定 Zookeeper 需要重启(例如,配置更改后或服务未正常运行),你可以使用以下命令来安全重启 Zookeeper:

/opt/kafka/bin/zookeeper-server-stop.sh
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties

这些命令首先停止正在运行的 Zookeeper 服务,然后重新启动服务。

5. 设置 Zookeeper 作为系统服务

可以将 Zookeeper 设置为系统服务,可以使用

systemctl

命令来管理 Zookeeper 的启动、停止和重启。以下是一个示例 systemd 服务文件 (

/etc/systemd/system/zookeeper.service

):

[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target
After=network.target

[Service]
Type=simple
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

创建完文件后,重新加载 systemd 配置,并启用 Zookeeper 服务:

sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl start zookeeper

上述步骤可以帮助你管理 Zookeeper 服务,并确保它在需要时可靠地运行。
在这里插入图片描述

标签: kafka 分布式

本文转载自: https://blog.csdn.net/weixin_50503886/article/details/138188640
版权归原作者 舒一笑 所有, 如有侵权,请联系我们删除。

“一篇文章告诉你CentOS7中从0到1搭建kafka消息中间件”的评论:

还没有评论