Kafka每个模块都对应一个脚本,例如:consumer、producer、topics对应的脚本kafka-console-consumer.sh、kafka-console-producer.sh、kafka-topics.sh
(1)查看操作topic命令参数
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-topics.sh
(2)创建名称为first的topic
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --create --partitions 1 --replication-factor 3 --topic first
选项说明:
--topic 定义 topic 名
--replication-factor 定义副本数
--partitions 定义分区数
输出:
Created topic first.
(3)查看当前服务器中的所有 topic
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list
输出:
first
(4)查看 first 主题的详情
[root@hadoop102 kafka_2.12-3.0.0]# bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first
输出:
Topic: first TopicId: u7i_SCslQZmZxTOHyglg7A PartitionCount: 1 ReplicationFactor: 3 Configs: segment.bytes=1073741824
Topic: first Partition: 0 Leader: 2 Replicas: 2,1,0 Isr: 2,1,0
segment.bytes=1073741824 表示默认存储1G的数据
Partition: 0 表示只有一个分区0
Replicas: 2,1,0 表示有3个副本,分表为0,1,2
Leader: 2 表示2号副本为Leader(即此时hadoop104是Leader副本)
(5)修改分区数(注意:分区数只能增加,不能减少)
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --alter --topic first --partitions 3
(6)再次查看 first 主题的详情
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first
输出:
Topic: first TopicId: u7i_SCslQZmZxTOHyglg7A PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes=1073741824
Topic: first Partition: 0 Leader: 2 Replicas: 2,1,0 Isr: 2,1,0
Topic: first Partition: 1 Leader: 0 Replicas: 0,1,2 Isr: 0,1,2
Topic: first Partition: 2 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
(7)删除 topic
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --delete --topic first
(1)查看操作生产者命令参数
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-console-producer.sh
(2)发送消息
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-console-producer.sh --bootstrap-server hadoop102:9092 --topic first
>hello world
(1)查看操作消费者命令参数
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-console-consumer.sh
(2)消费消息
1.消费 first 主题中的数据。
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first
上面生产者第一次发送hello world,再来创建消费者consumer进行消费时,consumer消费不到历史的数据
2.把主题中所有的数据都读取出来(包括历史数据)。
[root@hadoop102 kafka_2.12-3.0.0]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first
hello world
这时可以消费第一次发送的hello world历史数据