【大数据学习 | kafka】kafka的shell操作

1. topic的管理命令( kafka-topics.sh**)**

参数如下:

1.1 创建

sql 复制代码
# 创建
kafka-topics.sh --bootstrap-server nn1:9092 --create --topic topic_a --partitions 3 --replication-factor 2
# --bootstrap-server 指定集群地址,因为每个节点都存在controller所以想要获取元数据只需要指定集群中的一台机器就行了
# --create是创建命令
# --topic 指定topic的名称
# --partitions 分区数量,分区数量没有限定
# --replication-factor 副本数量,副本数量必须小于等集群的机器的个数,因为一个节点上面不能存在多个副本

1.2 查看 list

bash 复制代码
# list查看所有topic
kafka-topics.sh --bootstrap-server nn1:9092 --list

1.3 描述 desc

bash 复制代码
# 描述 desc
kafka-topics.sh --bootstrap-server nn1:9092 --describe --topic topic_a

describe命令展示的topic信息如下:

bash 复制代码
topic名称
topic_id随机id
partition_count 分区数量
replicationFactor 副本数量
Topic: topic_a  Partition: 0    Leader: 1       Replicas: 1,2   Isr: 1,2
内容解释:topic_a,0号分区在,leader分区在brokerid为1的broker上面,副本在brokerid为1和2两个节点上面
isr是数据的备份情况,先进broker1然后进入到broker2

1.4 删除 delete

bash 复制代码
# 删除
kafka-topics.sh --bootstrap-server nn1:9092 --delete --topic topic_a

1.5 修改 alter

bash 复制代码
# 重新创建
kafka-topics.sh --bootstrap-server nn1:9092 --create --topic topic_a --partitions 3 --replication-factor 2
# alter修改topic
kafka-topics.sh --bootstrap-server nn1:9092 --alter --topic topic_a --partitions 2
# 分区数量不能减少只能增加,减少分区会使得数据丢失
kafka-topics.sh --bootstrap-server nn1:9092 --alter --topic topic_a --partitions 4
bash 复制代码
# 修改副本数据
# 在创建完毕的topic以后,我们在使用的时候可能会遇见,副本不足的情况,这个时候我们可以动态增加topic的副本数量,但是增加的副本数量要在原有的基础上进行增加
# 首先我们创建一个json文件,用于支配topic的分区副本和节点的对应关系
vim json.txt
# 以原有分区分配的策略基础之上做二次变化
{"partitions":[{"topic":"topic_a","partition":0,"replicas":[4,3,2]},{"topic":"topic_a","partition":1,"replicas":[1,0,2]},{"topic":"topic_a","partition":2,"replicas":[2,4,0]},{"topic":"topic_a","partition":3,"replicas":[2,3,1]}],"version":1}
# 执行重新分配命令
kafka-reassign-partitions.sh --bootstrap-server nn1:9092 --reassignment-json-file json.txt --execute

2. 数据的生产消费命令( kafka-console-producer.sh**)**

bash 复制代码
# 生产者命令
kafka-console-producer.sh --bootstrap-server nn1:9092 --topic topic_a
# 消费者命令 --from-beginning 从头消费数据 --partition 指定分区消费
kafka-console-consumer.sh --bootstrap-server nn1:9092 --topic topic_a
bash 复制代码
# 指定分区,并且消费历史数据
kafka-console-consumer.sh --bootstrap-server nn1:9092 --topic topic_a  --from-beginning --partition 2
相关推荐
橙色云-智橙协同研发几秒前
核心Know-How不再随人走——智橙AI“智淀“功能详解
大数据·人工智能·ai
lengxuenong22 分钟前
树状数组 · 信息学学习手册1-求和3个模板
c++·学习·算法·青少年编程
得助智能-垂类大模型1 小时前
多Agent平台哪家做得好?2026年企业级多智能体平台选型指南
大数据·数据库
lanxiaoqing021 小时前
演讲训练的第一步:先敢说,再会说
人工智能·学习·学习方法·口才
金融Tech趋势派1 小时前
企业微信SCRM多少钱一年?2026收费标准拆解与预算自算表
大数据·企业微信
QY_Research_2 小时前
全球智能交通系统物联网市场规模及CAGR14.2%深度分析
大数据·网络·人工智能·物联网·制造
PGKJXSB2 小时前
以感知设备赋能水文,激光雪深传感器常态化监测积雪厚度
大数据
bingHHB3 小时前
聚水潭售后单同步至金蝶云·星空退货单:单一策略实战教程
大数据·集成学习
山东孙燕姿3 小时前
维修工单的转派与协同:两个人一起上
大数据·运维·服务器·网络·人工智能
让学习成为一种生活方式3 小时前
厚朴(Magnolia officinalis)染色体水平基因组--iScience
大数据·人工智能