首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kafka-日常运维命令

Kafka-日常运维命令

作者头像
运维小路
发布2025-06-08 13:59:18
发布2025-06-08 13:59:18
21800
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行
图片
图片

我们上一章介绍了中间件:Zookeeper,本章将介绍另外一个中间件:Kafka。目前这2个中间件都是基于JAVA语言的。

对于运维来说,一个正常的Kafka的集群,一般情况下我们是不需要去操作ZooKeeper来维护它的集群状态的。我们对Kafka的操作,大部分都通过Kafka自带的脚本来操作它,下面我们就来介绍下使用较多的命令。(部分命令在前面的操作里面已经有演示)。

代码语言:javascript
代码运行次数:0
运行
复制
#下面都是默认自带的脚本
#根据环境和需求不一样,大部分我们都用不到,我们最常用就那么几个 
[root@localhost ~]# ll /root/kafka_2.13-2.8.2/bin/
total 156
-rwxr-xr-x 1 root root  1423 Sep  2  2022 connect-distributed.sh
-rwxr-xr-x 1 root root  1396 Sep  2  2022 connect-mirror-maker.sh
-rwxr-xr-x 1 root root  1420 Sep  2  2022 connect-standalone.sh
-rwxr-xr-x 1 root root   861 Sep  2  2022 kafka-acls.sh
-rwxr-xr-x 1 root root   873 Sep  2  2022 kafka-broker-api-versions.sh
-rwxr-xr-x 1 root root   860 Sep  2  2022 kafka-cluster.sh
-rwxr-xr-x 1 root root   864 Sep  2  2022 kafka-configs.sh
-rwxr-xr-x 1 root root   945 Sep  2  2022 kafka-console-consumer.sh
-rwxr-xr-x 1 root root   944 Sep  2  2022 kafka-console-producer.sh
-rwxr-xr-x 1 root root   871 Sep  2  2022 kafka-consumer-groups.sh
-rwxr-xr-x 1 root root   948 Sep  2  2022 kafka-consumer-perf-test.sh
-rwxr-xr-x 1 root root   871 Sep  2  2022 kafka-delegation-tokens.sh
-rwxr-xr-x 1 root root   869 Sep  2  2022 kafka-delete-records.sh
-rwxr-xr-x 1 root root   866 Sep  2  2022 kafka-dump-log.sh
-rwxr-xr-x 1 root root   863 Sep  2  2022 kafka-features.sh
-rwxr-xr-x 1 root root   870 Sep  2  2022 kafka-leader-election.sh
-rwxr-xr-x 1 root root   863 Sep  2  2022 kafka-log-dirs.sh
-rwxr-xr-x 1 root root   873 Sep  2  2022 kafka-metadata-shell.sh
-rwxr-xr-x 1 root root   862 Sep  2  2022 kafka-mirror-maker.sh
-rwxr-xr-x 1 root root   886 Sep  2  2022 kafka-preferred-replica-election.sh
-rwxr-xr-x 1 root root   959 Sep  2  2022 kafka-producer-perf-test.sh
-rwxr-xr-x 1 root root   874 Sep  2  2022 kafka-reassign-partitions.sh
-rwxr-xr-x 1 root root   874 Sep  2  2022 kafka-replica-verification.sh
-rwxr-xr-x 1 root root 10329 Sep  2  2022 kafka-run-class.sh
-rwxr-xr-x 1 root root  1376 Sep  2  2022 kafka-server-start.sh
-rwxr-xr-x 1 root root  1361 Sep  2  2022 kafka-server-stop.sh
-rwxr-xr-x 1 root root   860 Sep  2  2022 kafka-storage.sh
-rwxr-xr-x 1 root root   945 Sep  2  2022 kafka-streams-application-reset.sh
-rwxr-xr-x 1 root root   863 Sep  2  2022 kafka-topics.sh
-rwxr-xr-x 1 root root   958 Sep  2  2022 kafka-verifiable-consumer.sh
-rwxr-xr-x 1 root root   958 Sep  2  2022 kafka-verifiable-producer.sh
-rwxr-xr-x 1 root root  1714 Sep  2  2022 trogdor.sh
drwxr-xr-x 2 root root  4096 Sep  2  2022 windows
-rwxr-xr-x 1 root root   867 Sep  2  2022 zookeeper-security-migration.sh
-rwxr-xr-x 1 root root  1393 Sep  2  2022 zookeeper-server-start.sh
-rwxr-xr-x 1 root root  1366 Sep  2  2022 zookeeper-server-stop.sh
-rwxr-xr-x 1 root root  1019 Sep  2  2022 zookeeper-shell.sh
一.基本操作
1. kafka-topics.sh(主题管理)
  • 用途:创建、查看、删除 Topic,管理分区和副本。
  • 常用子命令
代码语言:javascript
代码运行次数:0
运行
复制
# 创建 Topic(指定分区数、副本因子)
kafka-topics.sh --bootstrap-server <broker:port> --create --topic <topic_name> --partitions <N> --replication-factor <N>

# 列出所有 Topic
kafka-topics.sh --bootstrap-server <broker:port> --list

# 查看 Topic 详细信息(分区、副本分布、ISR 等)
kafka-topics.sh --bootstrap-server <broker:port> --describe --topic <topic_name>

# 删除 Topic
kafka-topics.sh --bootstrap-server <broker:port> --delete --topic <topic_name>

2. kafka-console-producer.sh(控制台生产者)

  • 用途:向指定 Topic 发送测试消息。
  • 常用参数
代码语言:javascript
代码运行次数:0
运行
复制
# 发送普通文本消息
kafka-console-producer.sh --bootstrap-server <broker:port> --topic <topic_name>

# 指定消息 Key(配合 parse.key 使用)
kafka-console-producer.sh --bootstrap-server <broker:port> --topic <topic_name> --property "parse.key=true" --property "key.separator=:"
3. kafka-console-consumer.sh(控制台消费者)
  • 用途:消费指定 Topic 的消息。
  • 常用参数
代码语言:javascript
代码运行次数:0
运行
复制
# 消费最新消息(从头开始加 --from-beginning)
kafka-console-consumer.sh --bootstrap-server <broker:port> --topic <topic_name>

# 显示消息 Key 和 Value
kafka-console-consumer.sh --bootstrap-server <broker:port> --topic <topic_name> --property print.key=true

# 指定消费者组(避免重复消费)
kafka-console-consumer.sh --bootstrap-server <broker:port> --topic <topic_name> --group <group_id>
4. kafka-consumer-groups.sh(消费者组管理)
  • 用途:查看消费者组状态、重置 Offset。
  • 常用子命令
代码语言:javascript
代码运行次数:0
运行
复制
# 列出所有消费者组
kafka-consumer-groups.sh --bootstrap-server <broker:port> --list

# 查看消费者组详情(Lag、Offset 等)
kafka-consumer-groups.sh --bootstrap-server <broker:port> --describe --group <group_id>

# 重置 Offset 到指定位置(如 earliest、latest 或特定值)
kafka-consumer-groups.sh --bootstrap-server <broker:port> --group <group_id> --topic <topic_name> --reset-offsets --to-earliest --execute
5. kafka-configs.sh(动态配置管理)
  • 用途:修改 Topic、Broker 或客户端的动态配置。
  • 常用子命令
代码语言:javascript
代码运行次数:0
运行
复制
# 查看 Topic 的配置
kafka-configs.sh --bootstrap-server <broker:port> --entity-type topics --entity-name <topic_name> --describe

# 修改 Topic 的消息保留时间
kafka-configs.sh --bootstrap-server <broker:port> --entity-type topics --entity-name <topic_name> --alter --add-config retention.ms=86400000

6. kafka-acls.sh(权限管理)

  • 用途:管理 Kafka 的访问控制列表(ACL)。
  • 常用子命令
代码语言:javascript
代码运行次数:0
运行
复制
# 授予生产者权限
kafka-acls.sh --bootstrap-server <broker:port> --add --allow-principal User:<user> --producer --topic <topic_name>

# 授予消费者权限
kafka-acls.sh --bootstrap-server <broker:port> --add --allow-principal User:<user> --consumer --topic <topic_name> --group <group_id>

二、集群管理命令

1. kafka-server-start.sh(启动 Broker)
  • 用途:启动 Kafka Broker 服务。
  • 常用方式
代码语言:javascript
代码运行次数:0
运行
复制
# 指定配置文件启动
kafka-server-start.sh /path/to/server.properties
2. kafka-reassign-partitions.sh(分区重分配)
  • 用途:手动调整分区副本分布(如扩容、节点下线)。
代码语言:javascript
代码运行次数:0
运行
复制
# 生成分区重分配计划(JSON 格式)
kafka-reassign-partitions.sh --bootstrap-server <broker:port> --generate --topics-to-move-json-file <plan.json> --broker-list "0,1,2"

# 执行重分配
kafka-reassign-partitions.sh --bootstrap-server <broker:port> --execute --reassignment-json-file <plan.json>

三、调试与监控

1. kafka-dump-log.sh(日志分析)
  • 用途:解析分区日志文件(查看消息内容)。
  • 常用参数
代码语言:javascript
代码运行次数:0
运行
复制
# 查看某个分区日志的头部和尾部消息
kafka-dump-log.sh --files /path/to/partition-log-00000 --print-data-log
2. kafka-producer-perf-test.sh(生产者压测)
  • 用途:测试生产者吞吐量。
  • 常用参数
代码语言:javascript
代码运行次数:0
运行
复制
kafka-producer-perf-test.sh --topic <topic_name> --num-records 100000 --record-size 1000 --throughput 1000 --producer-props bootstrap.servers=<broker:port>

总结

  • 最常用命令kafka-topics.shkafka-console-producer.shkafka-console-consumer.shkafka-consumer-groups.shkafka-configs.shkafka-server-start.sh.
  • 关键参数--bootstrap-server(新版替代 --zookeeper)、--describe--alter--reset-offsets
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.基本操作
  • 1. kafka-topics.sh(主题管理)
  • 3. kafka-console-consumer.sh(控制台消费者)
  • 4. kafka-consumer-groups.sh(消费者组管理)
  • 5. kafka-configs.sh(动态配置管理)
  • 二、集群管理命令
    • 1. kafka-server-start.sh(启动 Broker)
    • 2. kafka-reassign-partitions.sh(分区重分配)
    • 1. kafka-dump-log.sh(日志分析)
    • 2. kafka-producer-perf-test.sh(生产者压测)
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档