kafka关于修改副本数和分区的数的案例实战(也可用作leader节点均衡案例)
kafka关于修改副本数和分区的数的案例实战(也可用作leader节点均衡案例)
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.关于topic分区数的修改
1>.创建1分区1个的topic,名称为yinzhengjie-channel
[root@node101 ~]# kafka-topics.sh --zookeeper node102.yinzhengjie.org.cn: --create --replication-factor -partitions --topic yinzhengjie-channel
Created topic "yinzhengjie-channel".
[root@node101 ~]#
2>.查看topic的信息
[root@node101 ~]# kafka-topics.sh --describe --zookeeper node102.yinzhengjie.org.cn: --topic yinzhengjie-channel
Topic:yinzhengjie-channel PartitionCount: ReplicationFactor: Configs:
Topic: yinzhengjie-channel Partition: Leader: Replicas: Isr: 103 #可以很明显的看出kafka 的分区数和副本数都是1
[root@node101 ~]#
3>.将之前创建的topic修改为3个分区
[root@node101 ~]# kafka-topics.sh --alter --zookeeper node102.yinzhengjie.org.cn: --topic yinzhengjie-channel --partitions
WARNING: If partitions are increased for a topic that has a key, the partition logic or ordering of the messages will be affected
Adding partitions succeeded!
[root@node101 ~]#
4>.再次查看topic的分区数
[root@node101 ~]# kafka-topics.sh --describe --zookeeper node102.yinzhengjie.org.cn: --topic yinzhengjie-channel
Topic:yinzhengjie-channel PartitionCount: ReplicationFactor: Configs:
Topic: yinzhengjie-channel Partition: Leader: Replicas: Isr: #这是第一个分区,它的副本数依然是1一个,当前0号分区的副本数存放在103这个节点上。说明你的数据修改成功啦!
Topic: yinzhengjie-channel Partition: Leader: Replicas: Isr:
Topic: yinzhengjie-channel Partition: Leader: Replicas: Isr:
[root@node101 ~]#
二.关于topic副本数的修改
1>.编写分配脚本
[root@node101 ~]# cat addReplicas.json
{"topics":
[{"topic":"yinzhengjie-channel"}],
"version":
}
[root@node101 ~]#
2>.执行分配计划,用于生成json格式的文件
[root@node101 ~]# kafka-reassign-partitions.sh --zookeeper node102.yinzhengjie.org.cn: --topics-to-move-json-file addReplicas.json --broker-list "101,102,103" --generate
Current partition replica assignment #这是当前的分区情况,你可以结合--describe参数查看当前的分区情况
{"version":,"partitions":[{"topic":"yinzhengjie-channel","partition":,"replicas":[]},{"topic":"yinzhengjie-channel","partition":,"replicas":[]},{"topic":"yinzhengjie-channel","partition":,"replicas":[]}]} Proposed partition reassignment configuration #这是推荐分区计划
{"version":,"partitions":[{"topic":"yinzhengjie-channel","partition":,"replicas":[]},{"topic":"yinzhengjie-channel","partition":,"replicas":[]},{"topic":"yinzhengjie-channel","partition":,"replicas":[]}]}
[root@node101 ~]#
[root@node101 ~]# kafka-topics.sh --describe --zookeeper node102.yinzhengjie.org.cn: --topic yinzhengjie-channel #查看当前分区的情况
Topic:yinzhengjie-channel PartitionCount: ReplicationFactor: Configs:
Topic: yinzhengjie-channel Partition: Leader: Replicas: Isr:
Topic: yinzhengjie-channel Partition: Leader: Replicas: Isr:
Topic: yinzhengjie-channel Partition: Leader: Replicas: Isr:
[root@node101 ~]#
3>.Proposed partition reassignment configuration 后是根据命令行的指定的brokerlist生成的分区分配计划json格式。将 Proposed partition reassignment configuration的配置copy保存到一个文件中 topic-reassignment.json并对它进行相应的修改
[root@node101 ~]# cat topic-reassignment.json #注意,我在复制下来之后,对副本数进行了修改,由之前的1个副本升级为2个副本。
{"version":,"partitions":[{"topic":"yinzhengjie-channel","partition":,"replicas":[,]},{"topic":"yinzhengjie-channel","partition":,"replicas":[,]},{"topic":"yinzhengjie-channel","partition":,"replicas":[,]}]}
[root@node101 ~]#
4>.根据上一步生成的分配计划配置json文件topic-reassignment.json,进行topic的重新分配。
[root@node101 ~]# kafka-reassign-partitions.sh --zookeeper node102.yinzhengjie.org.cn: --reassignment-json-file topic-reassignment.json --execute
Current partition replica assignment {"version":,"partitions":[{"topic":"yinzhengjie-channel","partition":,"replicas":[]},{"topic":"yinzhengjie-channel","partition":,"replicas":[]},{"topic":"yinzhengjie-channel","partition":,"replicas":[]}]} Save this to use as the --reassignment-json-file option during rollback
Successfully started reassignment of partitions.
[root@node101 ~]#
5>.查看分配的进度
[root@node101 ~]# kafka-reassign-partitions.sh --zookeeper node102.yinzhengjie.org.cn: --reassignment-json-file topic-reassignment.json --verify
Status of partition reassignment:
Reassignment of partition [yinzhengjie-channel,] completed successfully #如果这里的参数是:is still in progress,说明正在进行分配,如果看到当前的提示说明分配完成。
Reassignment of partition [yinzhengjie-channel,] completed successfully
Reassignment of partition [yinzhengjie-channel,] completed successfully
[root@node101 ~]#
温馨提示,上述的方法不仅仅可以用来修改副本数,还可以用来修改你的leader节点,下图我就是我在生产环境中用来均衡leader节点的实操截图:(是不是上面我提到的2种状态都有呢?)
6>.如果分配完成,我们再次查看
[root@node101 ~]# kafka-topics.sh --describe --zookeeper node102.yinzhengjie.org.cn: --topic yinzhengjie-channel #查看当前分区的情况,这是还没有重新分配的时候
Topic:yinzhengjie-channel PartitionCount: ReplicationFactor: Configs:
Topic: yinzhengjie-channel Partition: Leader: Replicas: Isr: 103 #这里的副本数只有一个!
Topic: yinzhengjie-channel Partition: Leader: Replicas: Isr:
Topic: yinzhengjie-channel Partition: Leader: Replicas: Isr:
[root@node101 ~]#
root@node101 ~]# kafka-topics.sh --describe --zookeeper node102.yinzhengjie.org.cn: --topic yinzhengjie-channel
Topic:yinzhengjie-channel PartitionCount: ReplicationFactor: Configs:
Topic: yinzhengjie-channel Partition: Leader: Replicas: , Isr: , #副本数编程了2个!
Topic: yinzhengjie-channel Partition: Leader: Replicas: , Isr: ,
Topic: yinzhengjie-channel Partition: Leader: Replicas: , Isr: ,
[root@node101 ~]#
kafka关于修改副本数和分区的数的案例实战(也可用作leader节点均衡案例)的更多相关文章
- HDFS修改副本数,并生效。
1.hadoop集群使用的ucloud的uahdoop 2.是公司集群配置小,只有两台core节点,实际就是两台的datanode. 容量占用超过了80%,需要缩减副本以空出容量. 3.查看 hado ...
- kafka修改topic副本数
工作案例: 大数据开发用系统脚本自动在kafka建topic,检查后才发现副本数只有1个,存在数据丢失的风险.需要立刻把副本数改为3个. 开始干活,首先想到的是下面的命令: ${BIN_PATH}/k ...
- HDFS 修改默认副本数
描述:将HDFS副本数修改为2第一步:将HDFS上已有文件副本数修改为2 hdfs dfs -setrep 2 -R -w / 第二步:修改dfs.replication值为2(页面上操作),然后重启 ...
- Hadoop副本数配置
一个文件,上传到hdfs上时指定的是几个副本就是几个.修改了副本数(dfs.replications),对已经上传了的文件也不会起作用.当然可以在上传文件的同时指定创建的副本数hadoop dfs - ...
- 解决kafka集群由于默认的__consumer_offsets这个topic的默认的副本数为1而存在的单点故障问题
抛出问题: __consumer_offsets这个topic是由kafka自动创建的,默认50个,但是都存在一台kafka服务器上,这是不是就存在很明显的单点故障?经测试,如果将存储consumer ...
- hadoop修改MR的提交的代码程序的副本数
hadoop修改MR的提交的代码程序的副本数 Under-Replicated Blocks的数量很多,有7万多个.hadoop fsck -blocks 检查发现有很多replica missing ...
- elastic操作-索引重命名,索引副本数修改
目前我们使用的elastic版本为2.3.5 当前版本没有直接的curl操作可以更改索引的名称,索引的副本数. 有直接更改索引副本数的api. curl -XPUT "192.168.1.1 ...
- hadoop(hbase)副本数修改
一.需求场景 随着业务数据的快速增长,物理磁盘剩余空间告警,需要将数据备份从3份修改为1份,从而快速腾出可用磁盘容量. 二.解决方案 1. 修改hdfs的副本数 Hbase 的数据是存储在 hdfs ...
- 【大数据系列】使用api修改hadoop的副本数和块大小
package com.slp.hdfs; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.h ...
随机推荐
- jsp获取传过来的值
request.setCharacterEncoding("utf-8"); String credit=request.getParameter("credit&quo ...
- 【Deep Hash】NINH
[CVPR 2015] Simultaneous Feature Learning and Hash Coding with Deep Neural Networks [paper] Hanjiang ...
- 量产救U盘
同事U盘不能格式化,快速格式化失败,非快速格式化也失败.就问谁有360安全软件,试试能不能格式化. 我说我有火绒,但是不知道火绒并没有格式化U盘的功能(应该没有吧,反正我找了以后没找到) 那怎么办呢? ...
- Maven的课堂笔记3
8 仓库管理 仓库可以分为三种:1.本地仓库(本机).2.私服(公司局域网内的maven服务器).3.中央仓库(互联上,例如 struts2官网,或者hibernate官网) 可以根据maven坐标定 ...
- redux的源码解析
一. redux出现的动机 1. Javascript 需要管理比任何时候都要多的state2. state 在什么时候,由于什么原因,如何变化已然不受控制.3. 来自前端开发领域的新需求4. 我们总 ...
- [转帖]从1G到5G
一文看懂无线通信:从1G到5G 投递人 itwriter 发布于 2019-02-03 15:25 评论(2) 有280人阅读 [收藏] « » 文/老和山下的小学僧 最近太邪乎,先引用一个马克思政治 ...
- [日常工作]vCenter下虚拟机设置与宿主机时间同步的方法
1. ESXi 能够实现CPU超售 同事开启多与CPU个数的虚拟机 不通的虚拟机采用了时间分片的处理, 所以有时候虚拟机内的时间可能会比宿主机的时间过的更慢, 越来越久之后虚拟机的时间就会比较离谱了. ...
- 【Java】 内部类
[Java]内部类 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 使用内部类的的原因主要有三点: 内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据. 内部类可以对同一个包中的 ...
- html web服务器
web服务器可以发布网站,从而使得网站可以被全世界访问: 在自己服务器上托管自己的网站的要求: 硬件搭建:强大的服务器硬件,保证24小时高速连接, 软件搭建:服务器授权比客户端授权更贵: 人工费:环境 ...
- 与spring整合就是为了不用自己创建bean 让spring帮助我们创建bean
与spring整合就是为了不用自己创建bean 让spring帮助我们创建bean