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

打印 上一主题 下一主题

主题 838|帖子 838|积分 2514

1. topic的管理下令(kafka-topics.sh

参数如下:
1.1 创建

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

  1. # list查看所有topic
  2. kafka-topics.sh --bootstrap-server nn1:9092 --list
复制代码
1.3 形貌 desc

  1. # 描述 desc
  2. kafka-topics.sh --bootstrap-server nn1:9092 --describe --topic topic_a
复制代码
describe下令展示的topic信息如下:
  1. topic名称
  2. topic_id随机id
  3. partition_count 分区数量
  4. replicationFactor 副本数量
  5. Topic: topic_a  Partition: 0    Leader: 1       Replicas: 1,2   Isr: 1,2
  6. 内容解释:topic_a,0号分区在,leader分区在brokerid为1的broker上面,副本在brokerid为1和2两个节点上面
  7. isr是数据的备份情况,先进broker1然后进入到broker2
复制代码
1.4 删除 delete

  1. # 删除
  2. kafka-topics.sh --bootstrap-server nn1:9092 --delete --topic topic_a
复制代码
1.5 修改 alter

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

  1. # 生产者命令
  2. kafka-console-producer.sh --bootstrap-server nn1:9092 --topic topic_a
  3. # 消费者命令 --from-beginning 从头消费数据 --partition 指定分区消费
  4. kafka-console-consumer.sh --bootstrap-server nn1:9092 --topic topic_a
复制代码
  1. # 指定分区,并且消费历史数据
  2. kafka-console-consumer.sh --bootstrap-server nn1:9092 --topic topic_a  --from-beginning --partition 2
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表