3

kafka集群节点临时下线操作流程及步骤

 7 months ago
source link: https://chegva.com/5939.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

kafka集群节点临时下线操作流程及步骤

kafka集群节点临时下线操作流程:

首先,我们需要确保在将 Kafka 集群中的节点临时下线之前,集群处于健康状态。然后,我们可以按照以下步骤执行临时下线操作:

1.停止 Kafka 服务:在要下线的节点上停止 Kafka 服务,确保该节点不再参与集群中的任何活动。

2.从 ZooKeeper 中移除节点:使用 ZooKeeper 的命令行工具,手动将要下线的节点从 ZooKeeper 中移除。这将触发集群重新平衡,以确保其他节点接管该节点的分区。

3.监控集群健康状态:在节点下线后,监控集群的健康状态,确保其他节点成功接管了下线节点的分区,并且集群仍然能够正常工作。

4.恢复节点:当需要将节点重新加入集群时,启动 Kafka 服务,并确保节点的配置与其他节点保持一致。集群将自动检测到节点的重新加入,并进行必要的重新平衡操作。

注意,临时下线节点可能会导致集群的负载增加,因此在进行此操作时,需要谨慎考虑集群的整体健康状况以及业务需求。

kafka集群节点临时下线操作步骤:

1. 确保具备适当的权限和访问 Kafka 集群的方式。进入要下线的 Kafka 节点所在的服务器。此处提供的命令仅适用于 Apache Kafka 的默认安装和文件结构。如果你的安装方式或目录结构不同,请相应地修改命令。

2. 进入要下线的 Kafka 节点所在的服务器。

./zkServer.sh status
echo stat | nc <ZooKeeper IP> 2181
echo mntr | nc <ZooKeeper IP> 2181
echo isro | nc <ZooKeeper IP> 2181

systemctl status kafka.service

3. 停止 Kafka 服务器进程:

bin/kafka-server-stop.sh
或者
systemctl stop kafka.service

4. 确保 Kafka 服务器进程已经成功停止:

ps aux | grep kafka

在操作kafka节点下线过程中,同时登陆zookeeper集群,实时观察下线节点是否已从 zookeeper 节点中移除或重新注册

1)登陆zookeeper

./zkCli.sh -server 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181
# 查看kafka节点
[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 3] ls /brokers/ids
[1, 2, 3]

2)检查节点状态:使用以下命令检查要下线的节点是否已从 ZooKeeper 中移除:

get /brokers/ids/<node_id>

如果返回结果为空,表示该节点已从 ZooKeeper 中移除。

[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 4] get /brokers/ids/1
{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://172.16.157.51:9092"],"jmx_port":9099,"host":"172.16.157.51","timestamp":"1704536493719","port":9092,"version":4}

[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 0] ls /brokers/ids
[1, 3]
[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 1] get /brokers/ids/2
Node does not exist: /brokers/ids/2

3)移除节点:如果节点仍然存在,可以使用以下命令将节点从 ZooKeeper 中移除:

rmr /brokers/ids/<node_id>

这将删除指定节点的所有相关信息。最好是直接将要下线的kafka节点服务停掉,直接删除要小心误操作。

4)验证节点移除:再次使用 get 命令检查节点状态,确保节点已成功从 ZooKeeper 中移除。

5. 在 Kafka 集群的其他节点上,运行命令 describe,检查集群的状态,确保被下线的节点已被正确标记为“下线”状态:

bin/kafka-topics.sh --describe --zookeeper <zookeeper_host>:<zookeeper_port>

替换 <zookeeper_host> 和 <zookeeper_port> 为你的 ZooKeeper 节点的主机和端口。

kafka-topics.sh --describe --zookeeper 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181

6. 在下线节点完成维护或修复后,可以按需重启 Kafka 服务器来将其重新加入集群。使用以下命令启动 Kafka 服务器:

bin/kafka-server-start.sh config/server.propertie 或者 systemctl start kafka.service

[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 6] ls /brokers/ids
[1, 2, 3]

[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 7] get /brokers/ids/2
{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://172.16.157.58:9092"],"jmx_port":9099,"host":"172.16.157.58","timestamp":"1704695617038","port":9092,"version":4}

确保 Kafka 服务器配置文件的路径和名称正确。

7.使用 kafka-consumer-groups.sh 命令来查看消费者组的详细信息:

kafka-consumer-groups.sh --bootstrap-server 172.16.157.51:9092,172.16.157.58:9092,172.16.157.70:9092 --describe --group test

TOPIC     PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID                                  HOST           CLIENT-ID
test      1          20338977140     20340687475     1710335         test-1-7cac8552-2423-40ba-8b28-b2324e693f16  /172.16.157.6  test-1
test      0          21425799531     21427549842     1750311         test-0-3a8d66fd-90ac-47ac-a9b4-8410d04a2712  /172.16.157.6  test-0
test      2          20340552082     20342297849     1745767         test-10-0f56f4c4-b46a-4cc2-a34a-dc858a97f627 /172.16.157.6  test-10
安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/5939.html | ☆★★每天进步一点点,加油!★★☆ | 

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK