二、Kafka命令行操作

一、基本shell操作

1)查看当前服务器中的所有topic

[root@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list

2)创建topic

[root@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 \
--create --replication-factor 3 --partitions 1 --topic first

选项说明:
–topic 定义topic名
–replication-factor 定义副本数
–partitions 定义分区数

3)删除topic

[root@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 \
--delete --topic first

需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启。

4)发送消息

[root@hadoop102 kafka]$ bin/kafka-console-producer.sh \
--broker-list hadoop102:9092 --topic first
>hello world
>root  root

5)消费消息

[root@hadoop103 kafka]$ bin/kafka-console-consumer.sh \
--zookeeper hadoop102:2181 --from-beginning --topic first

–from-beginning:会把first主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。

6)查看某个Topic的详情

[root@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 \
--describe --topic first

7)修改分区数

[root@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper 
hadoop102:2181 --alter --topic first --partitions 6

二、消费者组

1.需求:
测试同一个消费者组中的消费者,同一时刻只能有一个消费者消费。

2.案例实操
(1)在 hadoop102、hadoop103 上修改/opt/module/kafka/config/consumer.properties 配置
文件中的 group.id 属性为任意组名。

[root@hadoop103 config]$ vi consumer.properties
group.id=ccjy

(2)在 hadoop102、hadoop103 上分别启动消费者

[root@hadoop102 kafka]$ bin/kafka-console-consumer.sh \
--zookeeper hadoop102:2181 --topic first --consumer.config 
config/consumer.properties

[root@hadoop103 kafka]$ bin/kafka-console-consumer.sh --
bootstrap-server hadoop102:9092 --topic first --consumer.config 
config/consumer.properties

(3)在 hadoop104 上启动生产者

[root@hadoop104 kafka]$ bin/kafka-console-producer.sh \
--broker-list hadoop102:9092 --topic first
>hello world

(4)查看 hadoop102 和 hadoop103 的接收者。
同一时刻只有一个消费者接收到消息

你可能感兴趣的:(kafka)