本文介绍常用的topic管理命令,主要涉及kafka-topics脚本, kafka-reassign-partitions和kafka-config脚本,前者是专门的topic相关的脚本,中间的是分区重分配相关的脚本,后者是配置相关的脚本,不仅可以管理topic,还能管理broker,consumer等。
kafka-topics --bootstrap-server broker_host:port --create --topic <topic_name> --partitions 1 --replication-factor 1
kafka-topics --bootstrap-server broker_host:port --delete --topic <topic_name>
kafka-topics --bootstrap-server broker_host:port --describe --topic <topic_name>
kafka-topics --bootstrap-server broker_host:port --list
kafka-topics --bootstrap-server broker_host:port --alter --topic <topic_name> --partitions <new_partition_number>
kafka-configs --zookeeper zookeeper_host:port --entity-type topics --entity-name <topic_name> --alter-config max.message.bytes=100485760
{"version":1, "partitions":[
{"topic":"topic_name","partition":0,"replicas":[0,1,2]},
{"topic":"topic_name","partition":1,"replicas":[0,2,1]},
{"topic":"topic_name","partition":2,"replicas":[1,0,2]},
{"topic":"topic_name","partition":3,"replicas":[1,2,0]}
]}
2.使用命令
kafka-reassign-partitions --zookeeper zookeeper_host:port --reassignment-json-file reassign.json --execute
kafka-configs --zookeeper zookeeper_host:port --alter --add-config 'leader.replication.throttled.rate=1004857600,follower.replication.throttled.rate=104857600'
kafka-reassign-partitions
内部主题:__consumer_offsets和__transaction_state
前者是记录consumer消费的进度的,后者是支持事物机制后引入的
kafka-console-consumer --bootstrap-server host:port --topic __consumer_offsets --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter" --from-beginning
kafka-console-consumer --bootstrap-server host:port --topic __consumer_offsets --formatter "kafka.coordinator.group.GroupMetadataManager\$GroupMetadataMessageFormatter" --from-beginning
1.删除主题失败
可能原因:
解决:
2.__consumer_offsets占用太多的磁盘
可能原因:
解决:
参考资料: kafka核心技术与实战-极客时间