资讯动态

Kafka 命令行操作

发布时间:2026/9/5 14:57:45 来源:尧图企业网站定制
本文面向 Kafka 初学者帮助大家从零上手 Kafka 的 Topic 操作。阅读本文前请先准备好一个三节点 Kafka 集群节点分别为 backup01、backup02、backup03Kafka 版本为 2.4.1。文章将围绕三大主题展开Topic 的创建、查看、删除与修改等基础操作分区与副本的分配原理以及消息的发送与消费。通过本文的实战演示你将能够独立完成 Kafka 集群上的日常运维操作并对分区、副本、消费者等核心概念建立直观认识。一、Topic 基础操作1查看当前服务器中的所有 topicbin/kafka-topics.sh --zookeeper backup01:2181使用命令 bin/kafka-topics.sh --list 报异常提示必须依赖zookeeper 前面我们就讲过kafka是依赖于zookeeper连上zookeeper什么都没有输出因为我们什么消息也没有我们需要创建topicbin/kafka-topics.sh --list --zookeeper backup01:21812创建 topicbin/kafka-topics.sh --zookeeper backup01:2181 --create --replication-factor 3 --partitions 1 -topic first 选项说明 --topic 定义 topic 名 --replication-factor 定义副本数 --partitions 定义分区数再次查看二、日志分析与分区副本验证日志分析backup01buckup02buckup03我们看见之前建立和配置好的logs目录下面生成很多文件 其中有个first-1这个就是我们创建的主题但是这个主题是主题名字和分区名字联合命名。还有一个最重要的是就是我们后台启动看不见kafka的启动日志在这个server.log下面我们可以查询启动相关信息3删除 topicbin/kafka-topics.sh --zookeeper backup01:2181 --delete --topic first #需要 server.properties 中设置 delete.topic.enabletrue 否则只是标记删除那我们就设置一下我们删除了之后重新建立一个first主题 一个分区一个副本buckup01buckup02buckup03我们发现一个分区一个副本就一个first-0现在大家应该明白了什么是分区和副本4查看某个 Topic 的详情bin/kafka-topics.sh --zookeeper buckup01:2181 --describe --topic first上面只有一个分区一个副本下面我们创建一个secend主题3个分区3个副本查看下主题的详情分区0有3个副本分区1也有3个副本分区2也有3个副本我们在创建一个主题three 2个分区2个副本主题three 分区1的其中1个副本在buckup01机器上主题three 分区0的其中1个副本被分配在buckup02机器上主题three 分区0和分区1的另一个副本都在buckup03机器上讲了这么多估计没有不懂分区和副本了吧三、消息发送与消费注意有一点副本数不能超过集群的机器数量5发送消息 向主题first发送消息buckup01开启一个生产者bin/kafka-console-producer.sh --brokerlist buckup01:9092 --topic first hello world atguigu atguigu6消费消息 backup03开启一个消费者bin/kafka-console-consumer.sh \ --zookeeper buckup03:2181 --topic first总是报一个错误zookeeper is not a recognized option在新版本--zookeeper是一个过时的方法此时才知道原来在最新的版本中这种启动方式已经被删除了最后附上0.90版本之后启动消费者的方法bin/kafka-console-consumer.sh --bootstrap-server backup03:9092 --topic first在backup02在开启一个消费者此时backup02这个机器是在发消息时候不在线默认只能从最大开始想要从头消费需要使用--from-beginning参数bin/kafka-console-consumer.sh --bootstrap-server backup02:9092 --topic first --from-beginning我们在看下logs下目录 主题__consumer_offsets 后面数字是分区 消费者默认50个分区[rootbackup02 kafka_2.12-2.4.1]# cd logs/ [rootbackup02 logs]# ll total 476 -rw-r--r--. 1 root root 4 Mar 29 16:31 cleaner-offset-checkpoint drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-0 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-12 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-15 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-18 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-21 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-24 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-27 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-3 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-30 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-33 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-36 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-39 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-42 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-45 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-48 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-6 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-9 -rw-r--r--. 1 root root 11302 Mar 29 15:56 controller.log -rw-r--r--. 1 root root 7243 Mar 29 13:56 controller.log.2020-03-29-13 -rw-r--r--. 1 root root 3499 Mar 29 14:02 controller.log.2020-03-29-14 -rw-r--r--. 1 root root 0 Mar 29 13:46 kafka-authorizer.log -rw-r--r--. 1 root root 0 Mar 29 13:46 kafka-request.log -rw-r--r--. 1 root root 17309 Mar 29 17:37 kafkaServer-gc.log.0.current -rw-r--r--. 1 root root 102388 Mar 29 17:36 kafkaServer.out -rw-r--r--. 1 root root 1055 Mar 29 16:31 log-cleaner.log -rw-r--r--. 1 root root 172 Mar 29 13:47 log-cleaner.log.2020-03-29-13 -rw-r--r--. 1 root root 550 Mar 29 14:02 log-cleaner.log.2020-03-29-14 -rw-r--r--. 1 root root 550 Mar 29 15:56 log-cleaner.log.2020-03-29-15 -rw-r--r--. 1 root root 4 Mar 29 17:38 log-start-offset-checkpoint -rw-r--r--. 1 root root 88 Mar 29 15:56 meta.properties -rw-r--r--. 1 root root 452 Mar 29 17:38 recovery-point-offset-checkpoint -rw-r--r--. 1 root root 452 Mar 29 17:39 replication-offset-checkpoint drwxr-xr-x. 2 root root 141 Mar 29 16:42 secend-0 drwxr-xr-x. 2 root root 141 Mar 29 16:42 secend-1 drwxr-xr-x. 2 root root 141 Mar 29 16:42 secend-2 -rw-r--r--. 1 root root 41838 Mar 29 17:36 server.log -rw-r--r--. 1 root root 31088 Mar 29 13:57 server.log.2020-03-29-13 -rw-r--r--. 1 root root 40824 Mar 29 14:52 server.log.2020-03-29-14 -rw-r--r--. 1 root root 53272 Mar 29 15:56 server.log.2020-03-29-15 -rw-r--r--. 1 root root 27236 Mar 29 16:56 server.log.2020-03-29-16 -rw-r--r--. 1 root root 36852 Mar 29 17:34 state-change.log -rw-r--r--. 1 root root 1145 Mar 29 13:51 state-change.log.2020-03-29-13 -rw-r--r--. 1 root root 36058 Mar 29 15:56 state-change.log.2020-03-29-15 -rw-r--r--. 1 root root 16465 Mar 29 16:48 state-change.log.2020-03-29-16 drwxr-xr-x. 2 root root 141 Mar 29 16:48 three-0 [rootbackup02 logs]#其他消费者分区[rootbackup03 kafka_2.12-2.4.1]# cd logs/ [rootbackup03 logs]# ll total 464 -rw-r--r--. 1 root root 4 Mar 29 16:31 cleaner-offset-checkpoint drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-1 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-10 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-13 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-16 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-19 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-22 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-25 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-28 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-31 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-34 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-37 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-4 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-40 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-43 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-46 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-49 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-7 -rw-r--r--. 1 root root 9685 Mar 29 15:56 controller.log -rw-r--r--. 1 root root 578 Mar 29 13:51 controller.log.2020-03-29-13 -rw-r--r--. 1 root root 9382 Mar 29 14:03 controller.log.2020-03-29-14 -rw-r--r--. 1 root root 0 Mar 29 13:47 kafka-authorizer.log -rw-r--r--. 1 root root 0 Mar 29 13:47 kafka-request.log -rw-r--r--. 1 root root 17325 Mar 29 17:38 kafkaServer-gc.log.0.current -rw-r--r--. 1 root root 100447 Mar 29 17:36 kafkaServer.out -rw-r--r--. 1 root root 844 Mar 29 16:31 log-cleaner.log -rw-r--r--. 1 root root 172 Mar 29 13:47 log-cleaner.log.2020-03-29-13 -rw-r--r--. 1 root root 550 Mar 29 14:03 log-cleaner.log.2020-03-29-14 -rw-r--r--. 1 root root 550 Mar 29 15:56 log-cleaner.log.2020-03-29-15 -rw-r--r--. 1 root root 4 Mar 29 17:43 log-start-offset-checkpoint -rw-r--r--. 1 root root 88 Mar 29 15:56 meta.properties -rw-r--r--. 1 root root 463 Mar 29 17:43 recovery-point-offset-checkpoint -rw-r--r--. 1 root root 463 Mar 29 17:43 replication-offset-checkpoint drwxr-xr-x. 2 root root 141 Mar 29 16:42 secend-0 drwxr-xr-x. 2 root root 141 Mar 29 16:42 secend-1 drwxr-xr-x. 2 root root 141 Mar 29 16:42 secend-2 -rw-r--r--. 1 root root 41154 Mar 29 17:36 server.log -rw-r--r--. 1 root root 31088 Mar 29 13:57 server.log.2020-03-29-13 -rw-r--r--. 1 root root 40823 Mar 29 14:53 server.log.2020-03-29-14 -rw-r--r--. 1 root root 45717 Mar 29 15:56 server.log.2020-03-29-15 -rw-r--r--. 1 root root 27398 Mar 29 16:56 server.log.2020-03-29-16 -rw-r--r--. 1 root root 36856 Mar 29 17:34 state-change.log -rw-r--r--. 1 root root 0 Mar 29 13:47 state-change.log.2020-03-29-13 -rw-r--r--. 1 root root 1145 Mar 29 14:02 state-change.log.2020-03-29-14 -rw-r--r--. 1 root root 25329 Mar 29 15:56 state-change.log.2020-03-29-15 -rw-r--r--. 1 root root 17415 Mar 29 16:48 state-change.log.2020-03-29-16 drwxr-xr-x. 2 root root 141 Mar 29 16:48 three-0 drwxr-xr-x. 2 root root 141 Mar 29 16:48 three-1 [rootbackup03 logs]#[rootbackup01 kafka_2.12-2.4.1]# cd logs/ [rootbackup01 logs]# ll total 696 -rw-r--r--. 1 root root 4 Mar 29 16:31 cleaner-offset-checkpoint drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-11 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-14 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-17 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-2 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-20 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-23 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-26 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-29 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-32 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-35 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-38 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-41 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-44 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-47 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-5 drwxr-xr-x. 2 root root 141 Mar 29 17:34 __consumer_offsets-8 -rw-r--r--. 1 root root 22485 Mar 29 17:40 controller.log -rw-r--r--. 1 root root 10857 Mar 29 13:51 controller.log.2020-03-29-13 -rw-r--r--. 1 root root 11117 Mar 29 14:58 controller.log.2020-03-29-14 -rw-r--r--. 1 root root 21665 Mar 29 15:56 controller.log.2020-03-29-15 -rw-r--r--. 1 root root 29350 Mar 29 16:55 controller.log.2020-03-29-16 drwxr-xr-x. 2 root root 141 Mar 29 16:32 first-0 -rw-r--r--. 1 root root 0 Mar 29 13:40 kafka-authorizer.log -rw-r--r--. 1 root root 0 Mar 29 13:40 kafka-request.log -rw-r--r--. 1 root root 18331 Mar 29 17:42 kafkaServer-gc.log.0.current -rw-r--r--. 1 root root 104496 Mar 29 17:35 kafkaServer.out -rw-r--r--. 1 root root 844 Mar 29 16:31 log-cleaner.log -rw-r--r--. 1 root root 722 Mar 29 13:51 log-cleaner.log.2020-03-29-13 -rw-r--r--. 1 root root 550 Mar 29 15:55 log-cleaner.log.2020-03-29-15 -rw-r--r--. 1 root root 4 Mar 29 17:44 log-start-offset-checkpoint -rw-r--r--. 1 root root 88 Mar 29 15:55 meta.properties -rw-r--r--. 1 root root 439 Mar 29 17:44 recovery-point-offset-checkpoint -rw-r--r--. 1 root root 439 Mar 29 17:44 replication-offset-checkpoint drwxr-xr-x. 2 root root 141 Mar 29 16:42 secend-0 drwxr-xr-x. 2 root root 141 Mar 29 16:42 secend-1 drwxr-xr-x. 2 root root 141 Mar 29 16:42 secend-2 -rw-r--r--. 1 root root 40958 Mar 29 17:35 server.log -rw-r--r--. 1 root root 71236 Mar 29 13:51 server.log.2020-03-29-13 -rw-r--r--. 1 root root 942 Mar 29 14:51 server.log.2020-03-29-14 -rw-r--r--. 1 root root 47315 Mar 29 15:56 server.log.2020-03-29-15 -rw-r--r--. 1 root root 31355 Mar 29 16:55 server.log.2020-03-29-16 -rw-r--r--. 1 root root 116986 Mar 29 17:34 state-change.log -rw-r--r--. 1 root root 1374 Mar 29 13:47 state-change.log.2020-03-29-13 -rw-r--r--. 1 root root 1145 Mar 29 14:03 state-change.log.2020-03-29-14 -rw-r--r--. 1 root root 42656 Mar 29 15:56 state-change.log.2020-03-29-15 -rw-r--r--. 1 root root 72145 Mar 29 16:48 state-change.log.2020-03-29-16 drwxr-xr-x. 2 root root 141 Mar 29 16:48 three-1我们可以分析出 集群消费者分区几乎都是轮询的消费说明分区就是一个负载均衡的作用这个数据默认保存168小时 保留7天 7天自动清理四、Topic 分区数修改7修改分区数bin/kafka-topics.sh --zookeeper backup01:2181 --alter --topic first --partitions 6五、总结本文围绕 Kafka 2.4.1 三节点集群backup01、backup02、backup03的实战操作系统梳理了 Topic 管理、分区副本机制与消息收发流程。核心要点如下Topic 增删查改命令通过bin/kafka-topics.sh配合--create、--list、--describe、--delete、--alter等参数即可完成 Topic 的创建、查看、删除与分区数修改删除 Topic 前需在server.properties中设置delete.topic.enabletrue否则只会标记删除。分区与副本的分配机制Topic 由多个分区组成每个分区可配置多个副本副本会尽量分散到不同节点以实现高可用和负载均衡副本数不能超过集群的机器数量否则创建会失败。消费者 offset 存储与 __consumer_offsets 主题消费者消费进度offset会持久化到名为__consumer_offsets的内部主题中该主题默认有 50 个分区数据默认保留 168 小时7 天后自动清理。新旧版本命令差异Kafka 0.90 版本之后消费者命令不再支持--zookeeper参数需改用--bootstrap-server生产者命令也建议使用--bootstrap-server替代旧的--brokerlist。常见报错排查建议若执行消费者命令报zookeeper is not a recognized option说明当前 Kafka 版本已移除--zookeeper选项请改用bin/kafka-console-consumer.sh --bootstrap-server backup03:9092 --topic first若想从头消费历史消息需追加--from-beginning参数。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价