创建主题,replication 分区 partitions 副本数,对应broker数量
kafka-topics.sh --create --zookeeper ${host}:2181 --replication-factor 1 --partitions 1 --topic save-data
查看主题列表
kafka-topics.sh --list --zookeeper ${host}:2181
查看特定主题状态
kafka-topics.sh --zookeeper ${host}:2181 --topic save-data --describe
删除主题
kafka-topics.sh --zookeeper ${host}:2181 --topic save-data2 --delete
查看消费组列表
kafka-consumer-groups.sh --bootstrap-server ${host}:9092 --list
查看特定消费组状态
kafka-consumer-groups.sh --bootstrap-server ${host}:9092 --group save-data2-group-0 --describe
设置消费组id
kafka-console-consumer.sh --bootstrap-server ${host}:9092 --topic save-data3 --consumer-property group.id=save-data3-group-0
重设消费组偏移量
kafka-consumer-groups.sh --bootstrap-server ${host}:9092 --group save-data2-group-0 --reset-offsets --all-topics --to-earliest --execute
创建新消费组
kafka-console-consumer.sh --bootstrap-server ${host}:9092 --topic save-data --from-beginning --new-consumer
kafka-console-producer.sh --topic save-data --bootstrap-server ${host}:9092
1、集群管理
前台启动broker
bin/kafka-server-start.sh
Ctrl + C 关闭
后台启动broker
bin/kafka-server-start.sh -daemon
关闭broker
bin/kafka-server-stop.sh
2、Topic管理
创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --partitions 3 --replication-factor 3 --topic topicname
删除topic
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic topicname
查询topic列表
bin/kafka-topics.sh --zookeeper localhost:2181 --list
查询topic详情
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic topicname
修改topic
bin/kafka-topics.sh --alter --zookeeper localhost:2181 --partitions 6 --topic topicname
3、Consumer-Groups管理
查询消费者组
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
查询消费者组详情
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group groupname
重设消费者组位移
最早处
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group groupname --reset-offsets --all-topics --to-earliest --execute
最新处
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group groupname --reset-offsets --all-topics --to-latest --execute
某个位置
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group groupname --reset-offsets --all-topics --to-offset 2000 --execute
调整到某个时间之后得最早位移
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group groupname --reset-offsets --all-topics --to-datetime 2019-09-15T00:00:00.000
删除消费者组
bin/kafka-consumer-groups.sh --zookeeper localhost:2181 --delete --group groupname
4、脚本工具
producer脚本
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topicname
参数含义:
--compression-codec lz4 压缩类型
--request-required-acks all acks的值
--timeout 3000 linger.ms的值
--message-send-max-retries 10 retries的值
--max-partition-memory-bytes batch.size值
consumer脚本
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topicname --from-beginning
指定groupid
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topicname --from-beginning
--consumer-property group.id=old-consumer-group
指定分区
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topicname --from-beginning
--partition 0
kafka-run-class脚本
kafka-run-class.sh kafka.tools.ConsoleConsumer 就是 kafka-console-consumer.sh
kafka-run-class.sh kafka.tools.ConsoleProducer 就是 kafka-console-producer.sh
获取topic当前消息数
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic topicname --time -1
--time -1表示最大位移 --time -2表示最早位移
查询consumeroffsets
bin/kafka-simple-consumer-shell.sh --topic _consumer_offsets --partition 12 --broker-list localhost:9092 --formatter "kafka.coorfinator.GroupMetadataManager\$OffsetsMessageFormatter"
5、MirrorMaker
跨机房灾备工具
bin/kafka-mirror-maker.sh --consumer.config consumer.properties --producer.config producer.properties --whitelist topicA|topicB
------------------------------------------------------
重新设置主题
示例move.json
{
"version": 1,
"partitions": [{
"topic": "save-data2",
"partition": 0,
"replicas": [1003, 1004]
},
{
"topic": "save-data2",
"partition": 1,
"replicas": [1004, 1003]
}
]
}
kafka-reassign-partitions.sh --zookeeper ${host}:2181 --reassignment-json-file move.json --execute
修改主题分区和副本数
kafka-topics.sh --zookeeper ${host}:2181 --alter --partitions 2 --topic save-data2
触发对所有的topic Leader进行负载均衡
kafka-preferred-replica-election.sh --zookeeper ${host}:2181 --path-to-json-file move.json
重新选举主题leader
kafka-leader-election.sh --path-to-json-file move.json --bootstrap-server ${host}:9092 --election-type unclean