1创建topic
在/opt/cloudera/parcels/CDH/lib/kafka/bin目录下:
./kafka-topics.sh --create --zookeeper cdh03:2181 --replication-factor 2 --partitions 3 --topic test
2查看指定topic
./kafka-topics.sh --describe --zookeeper cdh03:2181 --topic test
从上图看出, topic有3个分区, 2个副本。
每分区的所有副本都只有一个leader , 由该lead broker进行读写分区数据。
2.1 查看副本为under replicated状态分区
./kafka-topics.sh --describe --zookeeper sz-hd-01:2181 [-topic test ] --under-replicated-partitions
查看存在 under replicated状态(fellow分区同步主分区超过replica.lag.time.max.ms设置值10s)的分区。
目前最新版本的kafka 服务段参数只有replica.lag.time.max.ms,早期有replica.lag.time.max.messages被移除。
under replicated的分区将被移除。所有分区都不在ISR, 则分区处于offline partion.
3 查看所有topic
./kafka-topics.sh --list --zookeeper cdh03:2181
查看所有topic及描述
./kafka-topics.sh --describe --zookeeper cdh03:2181
4 删除topic
./kafka-topics.sh --delete --zookeeper cdh03:2181 --topic test
5 修改topic分区:
./kafka-topics.sh --alter --zookeeper 192.168.0.4:2181 --topic 7c1d49234d414308bfa4fda6e40ca44e --partitions 12
6 修改分区保留时长:
./kafka-topics.sh --zookeeper 192.168.0.4:2181 --alter --topic 4aa0d2d35e62483685e6137e609a1184 --partitions 0 --config retention.ms=1000
5 控制台发送消息
./kafka-console-producer.sh --broker-list cdh03:9092 --topic test
6 控制台消费消息
./kafka-console-consumer.sh --bootstrap-server cdh03:9092 --topic test --from-beginning
15 查看kafka分区信息: get /brokers/topics/[topic]/partitions/[partition]/state
16 查看kafka controller: get /controller
17 查看kafka消费偏移量,及落后指标
./kafka-consumer-groups.sh --bootstrap-server cdh03::9092 --group aisearch-group --describe(新版用bootstrap-server,旧版用zookeeper)
在zookeeper终端使用 get /consumers/[groupId]/offsets/[topic]/[partitionId] 的方式一般看不到啥,原理待确认。
17.5 查看所有的消费组:
./kafka-consumer-groups.sh --bootstrap-server xxxx:9092 --list
18 重新设置kafka偏移量
参考文档:Kafka consumer group位移重设 - huxihx - 博客园
设置消费组offset, 必须处于非运行状态
确定topic作用域——当前有3种作用域指定方式:--all-topics(为consumer group下所有topic的所有分区调整位移),--topic t1 --topic t2(为指定的若干个topic的所有分区调整位移),--topic t1:0,1,2(为指定的topic分区调整位移)
- 确定执行方案——当前支持3种方案:
- 什么参数都不加:只是打印出位移调整方案,不具体执行
- --execute:执行真正的位移调整
- --export:把位移调整方案按照CSV格式打印,方便用户成csv文件,供后续直接使用
1)将指定topic调整到指定offset: --to-offset
我们可以记录下某个时刻消费组的offset, 然后每个分区单独指定到对应offset
指定分区ai_search_log:0消费组aisearch_2_hive_group到偏移位置
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group aisearch_2_hive_group --reset-offsets --topic ai_search_log:0 --to-offset 1234 --execute
指定groupid下所有TOPIC到特定时间
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group aisearch_2_hive_group --reset-offsets --all-topics --to-datetime 2020-11-05T00:00:00.000 --execute
2)将指定topic分区offset按时间指定:--to-datetime
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group aisearch_2_hive_group
--reset-offsets --topic ai_search_log --to-datetime 2020-10-28T00:00:00.000 --execute
19 设置某个TOPIC数据保留时长。
./kafka-configs.sh --zookeeper bigdata01:2181 --alter --entity-name mytopic --entity-type topics --add-config retention.ms=259200000