linux 常用的kafka操作命令行,可以查看kafka安装目录下的bin文件夹。本文暂时只总结我们常用的一些命令。因后期版本升级,一些数据的存储考虑到多方面因素,kafka做了一些调整,所以相应的查询命令也发生了一些改变。比如0.9版本以后,offset(偏移量)的存储,从zookeeper集群迁移到了kafka集群里来。
TOPIC 常用查询命令
#创建Topics,指定名字,分区数,副本数
./kafka-topics.sh --zookeeper hadoop101:2181, hadoop102:2181, hadoop103:2181 --create --topic first --partitions 3 --replication-factor 3
连接zookeeper集群,创建主题first,指定3个分区,3个副本
#查询topic列表
./kafka-topics.sh --zookeeper hadoop101:2181 --list
连接zookeeper集群,查看主题信息
#查看主题描述
bin/kafka-topics.sh --zookeeper hadoop101:2181 --describe --topic first
连接zookeeper集群,查看主题描述信息,显示内容如下:
Topic为first, 编号为0的Partition, Leader在broker.id=0这个节点上,副本在broker.id为0 1 2这3个节点,并且所有副本都存活,并跟broker.id=0这个节点同步。
leader是在给出的所有partitons中负责读写的节点,每个节点都有可能成为leader。
replicas 显示给定partiton所有副本所存储节点的节点列表,不管该节点是否是leader或者是否存活。
isr 副本都已同步的的节点集合,这个集合中的所有节点都是存活状态,并且跟leader同步;如果没有同步数据,则会从这个Isr中移除
生产者基本操作
kafka 自带了 kafka-console-producer.sh 脚本,通过该脚本可以在终端调用 kafka 生产者向 kafka 发送消息;该脚本运行时需要指定 broker-list(kafka代理地址列表) 和 topic(消息被发送的目标主题) 两个必传参数;
#指定broker-list和topic
./kafka-console-producer.sh --topic first --broker-list hadoop102:9092
连接成功即可向kafka发送消息
happy就是写入kafka的消息
消费者基本操作
#指定主题及服务器信息,读取生产者发送的数据
./kafka-console-consumer.sh --topic first --bootstrap-server hadoop102:9092 --from-beginning
读取刚刚写入的happy
--from-beginning 从头开始读取。不加的话就会根据offset(偏移量)从上次读取的位置开始读取
#查询kafka offset偏移量
0.9版本以后offset存储在kafka上,所以查询命令有变化
查看消费者组 test 的偏移量信息
./kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --describe --group test
current-offset 当前已经消费记录数
log-end-offset 可以理解为总共记录条数
lag 可以理解为未消费记录条数
总结:kafka集群查询 连zookeeper
生产者查询 连broker-list
消费者查询可连 zookeeper (后面版本可能会删除)与 bootstrap-server