Kafka Shell Usage - tenji/ks GitHub Wiki
Kafka 命令行使用
一、创建
-
创建
Topic
bin/kafka-topics.sh --zookeeper node01:2181 --create --topic t_cdr --partitions 30 --replication-factor 2
注: partitions 指定 topic 分区数,replication-factor 指定 topic 每个分区的副本数
二、删除
-
删除
Topic
,慎用,只会删除zookeeper中的元数据,消息文件须手动删除bin/kafka-topics.sh --zookeeper node01:2181 --delete --topic t_cdr
2.1 彻底删除Topic的方法
-
删除
ZK
信息执行完上方命令之后,如果没有配置
delete.topic.enable=true
则此时Topic
的状态为:- marked for deletion
在没有配置
delete.topic.enable=true
的情况下,如果要彻底删除Topic
,需要到ZK
中删除中手动删除Topic
相关信息。rmr /kafka/brokers/topics/topic_name # 1. rmr 后面对应的就是kafka在zookeeper中的路径 # 2. topic_name 为要删除的topic名称
-
删除本地磁盘上的数据文件
从
ZK
中删除Topic
相关信息之后,其实本地磁盘当中的数据还是存在的,我们需要找到并删除它。rm -rf /data/kafka/topic_name* # 1. 这个目录就是配置文件中指定的kafka数据存储路径
三、查询
-
查询所有
Topic
列表bin/kafka-topics.sh --zookeeper node01:2181 --list
-
查询指定
Topic
详情(包括 Leader, Replicas, Isr 等信息)bin/kafka-topics.sh --zookeeper node01:2181 --describe --topic t_cdr
-
查询所有
Topic
详情bin/kafka-topics.sh --zookeeper node01:2181 --describe
-
获取最新的 Offset:
./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 127.0.0.1:9092 --time -1 --topic 1024_k6H9k6ijh2PxRSeeTio_stz_test
-
获取最早的 Offset:
./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 127.0.0.1:9092 --time -2 --topic 1024_k6H9k6ijh2PxRSeeTio_stz_test
-
获取指定时间戳对应的 Offset:
./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 127.0.0.1:9092 --time 1645781546362 --topic 1024_k6H9k6ijh2PxRSeeTio_stz_test
四、生产
-
控制台向
Topic
生产数据(注意:生产数据时使用的是broker
的端口)bin/kafka-console-producer.sh --broker-list node01:9092 --topic t_cdr
-
控制台向开启了 SSL 的集群生产数据
bin/kafka-console-producer.sh --broker-list node01:9093 --topic t_cdr --producer.config client_ssl.properties
client_ssl.properties
配置文件内容:security.protocol=SSL ssl.truststore.location=/root/stz/client.truststore.jks ssl.keystore.location=/root/stz/client.keystore.jks ssl.truststore.password=Y2hyb21lLi42OWk1N2owbDMuMzY1OWowajcmc291cmNlaWQ9Y2hyb21lJmllPVVURi04 ssl.keystore.password=Y2hyb21lLi42OWk1N2owbDMuMzY1OWowajcmc291cmNlaWQ9Y2hyb21lJmllPVVURi04
五、消费
-
控制台消费
Topic
的数据bin/kafka-console-consumer.sh --zookeeper node01:2181 --topic t_cdr --from-beginning
-
新版本的 Kafka 直接指定 Broker List 来消费
bin/kafka-console-consumer.sh --bootstrap-server node01:9092 --topic t_cdr --from-beginning
-
查询 Consumer Group 信息
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server node01:9092 --describe --group group_id
六、ZK 启动停止
-
启动ZK
nohup bin/zookeeper-server-start.sh config/zookeeper.properties >> logs/zookeeper.log &
-
停止ZK
bin/zookeeper-server-stop.sh
七、Kafka 启动停止
-
启动Kafka
nohup bin/kafka-server-start.sh config/server.properties &
-
停止Kafka
bin/kafka-server-stop.sh
八、压力测试
8.1 非 SSL 集群
./bin/kafka-producer-perf-test.sh --num-records 500000 --record-size 1000 --topic 1024_Mq68PT4v6J5B31hf1wm_stz_test --throughput 500 --producer-props bootstrap.servers=100.95.131.35:9092
8.2 SSL 集群
./bin/kafka-producer-perf-test.sh --num-records 5000000 --record-size 15000 --topic stz_test --throughput -1 --producer-props bootstrap.servers=192.168.0.78:21008,192.168.0.160:21008,192.168.0.168:21008,192.168.0.56:21008 security.protocol=SSL ssl.truststore.location=/home/stz/dis-perf-1.0.0/ssl/client.truststore.jks ssl.keystore.location=/home/stz/dis-perf-1.0.0/ssl/client.keystore.jks ssl.truststore.password=Y2hyb21lLi42OWk1N2owbDMuMzY1OWowajcmc291cmNlaWQ9Y2hyb21lJmllPVVURi04 ssl.keystore.password=Y2hyb21lLi42OWk1N2owbDMuMzY1OWowajcmc291cmNlaWQ9Y2hyb21lJmllPVVURi04
关于throughput
参数:
If throughput is set to -1, Kafka doesn't do any throttling things for the perf tool. Instead, if it's set, Kafka tries its best to have the TPS close to this target as possible as it can. Say throughput is set to 1000, then the perf tool approximately sends 1000 records per second.
kafka-producer-perf-test.sh
工具只启动了一个 Producer,而且不可以配置。