说明
登录 hadoop1 ,进行下面操作(登录哪个 hadoop2、hadoop3 也可以)
linux 系统命令在 kafka目录\bin 目录下,后缀是 .sh
进入 kafka 目录:
cd /program/kafka_2.12-2.4.1
查看topic列表
bin/kafka-topics.sh --bootstrap-server hadoop1:9092 --list
解释:
--bootstrap-server hadoop1:9092:指定 kafka集群节点--list:列出所有topic
执行结果: 空行,表示没有主题
创建topic-简单创建
bin/kafka-topics.sh --bootstrap-server hadoop1:9092 --create --topic userlog
注意: kafka topic命名规则
查看 data 文件夹
打开 /program/kafka_2.12-2.4.1/data/ 目录,发现有 userlog-0 文件夹,其中 0 表示 Partition分区号
查看zookeeper节点
启动zookeeper客户端,执行下面命令:
ls /brokers/topics
发现节点下有 userlog/0
说明 topic 保存在zookeeper中
结论
说明创建 topic 后,在
kafka目录\logs目录下会生成 文件夹,名字为:topic名-分区号zookeeper的
/brokers/topics会增加topic名/分区号的节点
创建topic-指定参数
指定参数
bin/kafka-topics.sh --bootstrap-server hadoop1:9092 --create --replication-factor 1 --partitions 3 --topic userlog2
解释:
--topic定义 topic 名--replication-factor定义副本数,不能大于broker数量--partitions定义分区数
再次执行查看topic列表:
bin/kafka-topics.sh --bootstrap-server hadoop1:9092 --list
执行结果:
userlog
查看 hadoop2 的 topic列表:
bin/kafka-topics.sh --bootstrap-server hadoop2:9092 --list
执行结果:
userlog
数据同步了
查看topic详情
bin/kafka-topics.sh --bootstrap-server hadoop1:9092 --describe --topic userlog
执行结果:
第一行是概览信息:
PartitionCount: 3分区总数ReplicationFactor: 1副本数
下面共有3行,先看 第一行,解释:
Partition: 0: 表示编号是0的 Partition,即:userlog-0Leader: 0: 表示 Leader 在broker.id=0这个节点上(在server.properties中配置)Replicas: 0: 表示 Replicas 在broker.id=0这个节点上(在server.properties中配置)Isr: 0: 副本都已同步的的节点集合
第二行的意思 同上
删除topic
执行删除命令
执行下面命令
bin/kafka-topics.sh --bootstrap-server hadoop1:9092 --delete --topic userlog

