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},....