一. 背景
CDH集群的parcels安装包里,已经内置了Kafka服务,用户安装kafka集群时,无需下载apache社区版, 即可在cloudera manager里进行开箱即用的集群安装, 如下:
但是在具体使用过程中, CDH版的kafka命令与apache社区版还是有较大的不同.
CDH版kafka命令, 主要有以下几类:
命令名称 | 说明 |
---|---|
kafka-topics | kafka topic的CURD + describe |
kafka-console-producer | kafka topic的数据生成 |
kafka-console-consumer | kafka topic的数据消费 |
kafka-run-class | kafka topic的消费offset的查看 |
kafka-consumer-offset-checker | kafka topic的消费组的offset查看 |
如下命令基于CDH如下版本进行测试:
版本: Cloudera Express 5.16.2 (#7 built by jenkins on 20190518-0557 git: fedcd738d6af67bc26077f7ad53b03ea9dafa2f0)
Java VM 名称: Java HotSpot(TM) 64-Bit Server VM
Java 版本: 1.8.0_65
二. CDH版kafka命令说明
2.1 kafka-topics命令簇
(1)、topic 创建
kafka-topics --create
kafka-topics --create --topic ${Topic_Name} --zookeeper ZK_IP_1:2181,ZK_IP_2:2181 --partitions 2 --replication-factor 2
(2)、topic 查询
kafka-topics --describe
kafka-topics --describe --zookeeper ZK_IP_1:2181,ZK_IP_2:2181 --topic ${Topic_Name}
(3)、topic 删除 (彻底删除topic,需将zookeeper上znode的元数据删掉)
kafka-topics --delete
kafka-topics --delete --zookeeper ZK_IP_1:2181,ZK_IP_2:2181 --topic ${Topic_Name}
(4)、查看kafka所有的topic名称
kafka-topics --list
样例:
kafka-topics --list --zookeeper ZK_IP_1:2181,ZK_IP_2:2181
(5)、topic 元信息修改
kafka-topics --[option-key option-value]
kafka-topics --zookeeper ZK_IP_1:2181,ZK_IP_2:2181 --alter --partitions 2 --topic ${Topic_Name}
2.2、kafka-console-producer(消息生产)
kafka-console-producer --broker-list KAFKA_BROKER_IP_1:9092,KAFKA_BROKER_IP_2:9092 --topic ${Topic_Name}
2.3、kafka-console-consumer(消息订阅,【可选:从起始位置】)
kafka-console-consumer --zookeeper ZK_IP_1:2181,ZK_IP_2:2181 --topic ${Topic_Name} --from-beginning
2.4 kafka-run-class命令簇
(1) 查看每个Partition的最新偏移量
kafka-run-class kafka.tools.GetOffsetShell --broker-list hadoop:9092 --topic ${Topic_Name} --time -1
(2) 查看每个Partition的最早的偏移量
kafka-run-class kafka.tools.GetOffsetShell --broker-list KAFKA_BROKER_IP_1:9092 --topic ${Topic_Name} --time -2
(3) 查看consumer组内消费的offset
kafka-run-class kafka.tools.ConsumerOffsetChecker --zookeeper ZK_IP_1:2181,ZK_IP_2:2181 --topic ${Topic_Name}
2.5 kafka-consumer-offset-checker命令(获取consume-group偏移量)
kafka-consumer-offset-checker --zookeeper=ZK_IP_1:2181,ZK_IP_2:2181 --topic= T o p i c N a m e − − g r o u p = {Topic_Name} --group= TopicName−−group={Consume-Group-Name}
三. KafkaManager中broker地址适配CDH版kafka
ZK_IP_1:2181,ZK_IP_2:2181/kafka