第4章 Kafka基础管理
1.相关脚本
kafka自己本身自带了很多的维护脚本,每个脚本都有特定的功能,日常维护我们只要选择适合的脚本加上参数即可。这里列出常用的kafka维护脚本及作用:
服务器管理:
kafka-server-start.sh: 启动 Kafka 服务器。
kafka-server-stop.sh: 停止 Kafka 服务器。
zookeeper-server-start.sh: 启动 ZooKeeper 服务器。
zookeeper-server-stop.sh: 停止 ZooKeeper 服务器。
主题管理:
kafka-topics.sh: 创建、删除、列出或修改主题。
生产者和消费者测试:
kafka-console-producer.sh: 从命令行向 Kafka 主题发送消息。
kafka-console-consumer.sh: 从 Kafka 主题读取消息。
kafka-producer-perf-test.sh: 测试 Kafka 生产者性能。
kafka-consumer-perf-test.sh: 测试 Kafka 消费者性能。
kafka-verifiable-consumer.sh: 用于验证消费者行为。
kafka-verifiable-producer.sh: 用于验证生产者行为。
集群和配置管理:
kafka-configs.sh: 修改 broker、topic 或用户的配置。
kafka-broker-api-versions.sh: 获取 broker 支持的 API 版本。
kafka-cluster.sh: 管理 Kafka 集群的操作。
kafka-reassign-partitions.sh: 分区再分配工具。
kafka-log-dirs.sh: 列出 broker 上的 log 目录详情。
消费者组管理:
kafka-consumer-groups.sh: 管理消费者组。
安全和认证:
kafka-acls.sh: 管理 Kafka ACL。
kafka-delegation-tokens.sh: 管理委托令牌。
zookeeper-security-migration.sh: ZooKeeper 安全迁移工具。
数据管理:
kafka-delete-records.sh: 删除特定主题的记录。
kafka-dump-log.sh: 转储日志文件内容。
运维和监控:
kafka-leader-election.sh: 手动领导者选举工具。
kafka-replica-verification.sh: 验证副本一致性。
kafka-features.sh: 管理 Kafka 特性的启用与否。
kafka-metadata-shell.sh: 交互式 shell 管理元数据。
kafka-storage.sh: 管理 Kafka 存储。
数据迁移和集成:
connect-distributed.sh: 启动 Kafka Connect(分布式模式)。
connect-standalone.sh: 启动 Kafka Connect(独立模式)。
kafka-mirror-maker.sh: 旧版的镜像制作工具。
connect-mirror-maker.sh: 新版的镜像制作工具。
最重要的脚本:
**kafka-run-class.sh**: 运行 Kafka 中的任何类,其实上面所有的脚本都是调用这个脚本。
2.Topic管理操作
列出所有topic
旧版本kafka操作:
/opt/kafka/bin/kafka-topics.sh --list \
--zookeeper 10.0.0.51:2181,10.0.0.52:2181,10.0.0.53:2181
新版本kafka操作:
/opt/kafka/bin/kafka-topics.sh --list \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092
创建topic
/opt/kafka/bin/kafka-topics.sh --create \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--topic kafka-test \
--partitions 3 \
--replication-factor 3
查看topic
/opt/kafka/bin/kafka-topics.sh --describe \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--topic kafka-test
删除topic
/opt/kafka/bin/kafka-topics.sh --delete \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--topic kafka-test
3.消息管理操作
创建topic
/opt/kafka/bin/kafka-topics.sh --create \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--partitions 3 \
--replication-factor 3 \
--topic message-test
生产者-产生消息
/opt/kafka/bin/kafka-console-producer.sh \
--broker-list 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--topic message-test
消费者-消费消息
/opt/kafka/bin/kafka-console-consumer.sh \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--topic message-test \
--from-beginning
查看消费组的偏移量
要查看 Kafka 中特定主题的消费偏移量,可以使用 kafka-consumer-groups.sh
工具 ,不过首先要先知道消费组的名称:
/opt/kafka/bin/kafka-consumer-groups.sh --list \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092
执行效果:
[root@db-51 /tmp]# /opt/kafka/bin/kafka-consumer-groups.sh --list \
> --bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092
console-consumer-91172
拿到消费组后就可以查看偏移量了:
/opt/kafka/bin/kafka-consumer-groups.sh --describe \
--bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
--group=console-consumer-91172
执行效果:
[root@db-51 /tmp]# /opt/kafka/bin/kafka-consumer-groups.sh --describe \
> --bootstrap-server 10.0.0.51:9092,10.0.0.52:9092,10.0.0.53:9092 \
> --group=console-consumer-91172
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
console-consumer-91172 message-test 0 - 2 - console-consumer-9b0add51-a4f3-443c-943d-1b46aec4aa98 /10.0.0.52 console-consumer
console-consumer-91172 message-test 1 - 1 - console-consumer-9b0add51-a4f3-443c-943d-1b46aec4aa98 /10.0.0.52 console-consumer
console-consumer-91172 message-test 2 - 1 - console-consumer-9b0add51-a4f3-443c-943d-1b46aec4aa98 /10.0.0.52 console-consumer
3.部署kafka图形管理工具
安装部署:
#项目地址
https://github.com/dushixiang/kafka-map/
#docker启动
docker run -d \
-p 8080:8080 \
-v /opt/kafka-map/data:/usr/local/kafka-map/data \
-e DEFAULT_USERNAME=admin \
-e DEFAULT_PASSWORD=admin \
--name kafka-map \
--restart always dushixiang/kafka-map:latest
访问页面:
更新: 2024-10-06 13:47:13