kafka_cluster_scaling_summary
# Kafka集群缩容操作总结 ## 概述 本文档总结了从博客园文章《kafka集群缩容》中提取的Kafka集群缩容操作流程,包含完整的命令行操作步骤。 ## 主要操作步骤 ### 1. 获取Kafka主题列表 \`\`\`bash /data01/server/kafka/bin/kafka-topics.sh --zookeeper offline-op-kafka-ali-01:2181 --list \> topics.txt \`\`\` ### 2. 格式化主题列表为JSON 使用Python脚本将主题列表转换为JSON格式: \`\`\`python import json obj = {} obj\["version"\] = 1 obj\["topics"\] = \[\] with open("topics.txt") as f: for line in f.readlines(): topic = {"topic": line.strip()} obj\["topics"\].append(topic) with open("topics.json", "w") as f: json.dump(obj, f, indent=2) \`\`\` ### 3. 生成当前分区分配方案 \`\`\`bash kafka-reassign-partitions.sh --zookeeper offline-op-kafka-ksyun-01:2181 --topics-to-move-json-file topics.json --broker-list "1,2,3" --generate \> current.json \`\`\` ### 4. 执行分区重分配 \`\`\`bash kafka-reassign-partitions.sh --zookeeper offline-op-kafka-ksyun-01:2181 --reassignment-json-file current.json --execute kafka-reassign-partitions.sh --zookeeper offline-op-kafka-ali-01:2181 --reassignment-json-file current.json --execute \`\`\` ### 5. 验证迁移完成状态 \`\`\`bash ./kafka-reassign-partitions.sh --zookeeper offline-op-kafka-ksyun-01:2181 --reassignment-json-file current.json --verify \| grep -v successsfully \`\`\` \*\*注意:验证结果为空代表迁移完成!\*\* ## 监控和检查命令 ### 查看ISR(In-Sync Replicas) \`\`\`bash ./kafka-topics.sh --describe --zookeeper offline-op-kafka-ksyun-01:2181 --topic server-practice-laravel-php-log \`\`\` ### 查看消费者组列表 \`\`\`bash ./kafka-consumer-groups.sh --bootstrap-server offline-op-kafka-ksyun-01:9092 --list \`\`\` ### 查看消费者组消费情况 \`\`\`bash ./kafka-consumer-groups.sh --bootstrap-server offline-op-kafka-ksyun-01:9092 --describe --group opentsdb-logstash \`\`\` ## 关键注意事项 1. \*\*Zookeeper连接\*\*:操作需要连接到正确的Zookeeper集群 2. \*\*Broker列表\*\*:使用 \`--broker-list "1,2,3"\` 指定目标broker 3. \*\*验证标准\*\*:验证命令输出为空表示迁移成功 4. \*\*多集群操作\*\*:文中展示了同时操作两个不同Kafka集群的命令 ## 环境信息 - Kafka版本:未明确指定 - Zookeeper集群:offline-op-kafka-ali-01:2181, offline-op-kafka-ksyun-01:2181 - 涉及主题:server-practice-laravel-php-log - 消费者组:opentsdb-logstash --- \*总结自博客园文章《kafka集群缩容》\*
许可协议:
CC BY 4.0