Kafka的主题常用命令

本文档详细介绍了Apache Kafka的命令行操作,包括启动Zookeeper和Kafka服务器,创建和查看主题,发送和消费消息,管理消费者组,以及查看和调整offset。此外,还涵盖了消费者API的关键参数设置,以及如何重置和查询消费进度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kafka常用命令


#启动ZK 
./bin/zookeeper-server-start.sh ./config/zookeeper.properties  


#启动Kafka 
./bin/kafka-server-start.sh ./config/server.properties 


#创建主题 
kafka-topics.sh --zookeeper localhost:2181 --create --topic test --partitions 1 --replication-factor 1 


#查看主题 
kafka-topics.sh --zookeeper localhost:2181 --list 


#发送消息 
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 


#有key类型消息
./bin/kafka-console-producer.sh --broker-list localhsot:9092 --topic topicName --property parse.key=true
默认消息键与消息值间使用“Tab键”进行分隔,切勿使用转义字符(\t),

#消费消息 
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning 


#有key类型消息
kafka-console-consumer.sh --bootstrap-server hadoop00:9092 --topic test2 --from-beginning --property print.key=true

#删除Kafka主题 kafka_2.11_2.30 
#只需要在当前broker上设置server.properties 
delete.topic.enable=true 
./kafka-topics.sh --zookeeper hadoop00:2181 --delete --topic test1 

#查看主题offset,消息数量 
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list hadoop02:9092 -topic news --time -1 

#查询__consumer_offsets topic所有内容 
kafka-console-consumer.sh --topic __consumer_offsets --bootstrap-server hadoop00:9092 --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter" --consumer.config ../config/consumer.properties --from-beginning 

#查询消费者组列表 
kafka-consumer-groups.sh --bootstrap-server hadoop00:9092 --list 

#查询消费组消费进度
 kafka-consumer-groups.sh --bootstrap-server hadoop00:9092 --describe --group group01 

#Kafka会使用下面公式计算该group位移保存在__consumer_offsets的哪个分区上 
scala: 
Math.abs("perf-consumer-74133".hashCode)%50 

#Producer Consumer API关键参数 
properties.put("bootstrap.servers", "localhost:9092"); // kafka 集群broker地址情况 
 properties.put("key.serializer",StringDeserializer.class.getName()); // key 反序列化 
 properties.put("value.serializer",StringDeserializer.class.getName()); // value 反序列化 
 props.put("group.id", "my.group.201");// 消费者组,默认值为"",如果为"",会抛错 

#使用config/consumer.properties,需要参数指定 ,可在该配置文件中的配置常用属性,如group.id。也可以不使用该配置文件
kafka-console-consumer.sh --bootstrap-server hadoop00:9092 --topic test --consumer.config ../config/consumer.properties 
相应的--producer.config ... 

comsumer重置offset的策略  
earliest:重置offset为最小的未被消费的offset  
latest:重置offset为最新的offset  
none:没有offset时直接抛出异常 

consumer.poll(timeout)中timeout是控制客户端如果有数据则返回数据,否则客户端阻塞timeout时长持续消费数据 
max.poll.records : consumer一次拿到的最大记录  

max.poll.interval.ms:consumer两次poll的最大间隔( 如果处理线程死掉,则需要max.poll.interval.ms来检测它, kafka默认是300s)。设置过高会使故障检测周期过长。  


7.重置kafka offset 
./kafka-consumer-groups.sh --bootstrap-server ip:9092 --group groupName --reset-offsets --to-offset 1000 --topic topicName --execute 
kafka-streams-application-reset.sh --zookeeper hadoop01:2181 --bootstrap-server hadoop01:9092 --application-id xxx --input-topics  xxx 

8.查看组对所有主主题的offset 
/opt/kafka_2.11-2.3.0/bin/kafka-consumer-groups.sh --bootstrap-server hadoop01:9092 --group grpUsers  --offsets --describe 


9.打印主题key 

kafka-console-consumer.sh --bootstrap-server sandbox-hdp.hortonworks.com:6667 --topic train --from-beginning --property print.key=true 

会把key打印出来。 

kafka-console-consumer.sh --bootstrap-server sandbox-hdp.hortonworks.com:6667 --topic train --from-beginning --property print.key=false 

只打印值。 

10、查看consumer组内消费的offset  (0.9后不再支持kafka.tools.ConsumerOffsetChecker)
./kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group test --topic testKJ1

11.查看主题offset 
/opt/kafka_2.11-2.3.0/bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list hadoop01:9092 --topic test-0903 
test:0:1522
test:1:1020
test:2:1258
其中:test:0:1522   #表示分区0 共1522记录 


12.查看index log文件
kafka-run-class.sh kafka.tools.DumpLogSegments --files /tmp/kafka-logs/test-0/00000000000000000000.index
kafka-run-class.sh kafka.tools.DumpLogSegments --files /tmp/kafka-logs/test-0/00000000000001051625.log --print-data-log

--print-data-log可以打印消息内容
 

13.监控各个 topic-partition 在 disk 上的占用空间情况
 kafka-log-dirs.sh  --bootstrap-server hadoop00:9092 --describe --broker-list 0
Querying brokers for log directories information
Received log directory information from brokers 0
{"version":1,"brokers":[{"broker":0,"logDirs":[{"logDir":"/tmp/kafka-logs","error":null,"partitions":[{"partition":"test1112-0","size":0,"offsetLag":0,"isFuture":false},{"partition":"__consumer_offsets-13","size":549,"offsetLag":0,"isFuture":false},{"partition":"__consumer_offsets-46","size":0,"offsetLag":0,"isFuture":false},{"partition":"__consumer_offsets-9","size":0,"offsetLag":0,"isFuture":false},{"partition":"__consumer_offsets-42","size":552,"offsetLag":0,"isFuture":false},{"partition":"test_p2r1-1","size":138,"offsetLag":0,"isFuture":false},....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值