|NO.Z.00056|——————————|BigDataEnd|——|Hadoop&kafka.V41|——|kafka.v41|修改分区副本|

一、修改分区副本
### --- 修改分区副本

~~~     # 实际项目中,
~~~     我们可能由于主题的副本因子设置的问题,
~~~     需要重新设置副本因子或者由于集群的扩展,需要重新设置副本因子。
~~~     topic一旦使用又不能轻易删除重建,因此动态增加副本因子就成为最终的选择。
~~~     # 说明:
~~~     kafka 1.0版本配置文件默认没有default.replication.factor=x, 因此如果创建topic时,
~~~     不指定–replication-factor 想, 
~~~     默认副本因子为1. 我们可以在自己的server.properties中配置上常用的副本因子,省去手动调整。
~~~     例如设置default.replication.factor=3, 
~~~     详细内容可参考官方文档https://kafka.apache.org/documentation/#replication
### --- 原因分析:

~~~     # 假设我们有2个kafka broker分别broker0,broker1。
~~~     #当我们创建的topic有2个分区partition时并且replication-factor为1,基本上一个broker上一个分区。
~~~     当一个broker宕机了,该topic就无法使用了,因为两个个分区只有一个能用。
~~~     #当我们创建的topic有3个分区partition时并且replication-factor为2时,
~~~     #可能分区数据分布情况是
~~~     broker0, partiton0,partiton1,partiton2, broker1, partiton1,partiton0,partiton2,
~~~     每个分区有一个副本,当其中一个broker宕机了,kafka集群还能完整凑出该topic的两个分区,
~~~     例如当broker0宕机了,可以通过broker1组合出topic的两个分区。
二、创建项目
### --- 创建主题:

[root@hadoop01 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka \
--create --topic tp_re_02 --partitions 3 --replication-factor 1
### --- 查看主题细节:

[root@hadoop01 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka \
--describe --topic tp_re_02
~~~输出参数
Topic:tp_re_02  PartitionCount:3    ReplicationFactor:1 Configs:
    Topic: tp_re_02 Partition: 0    Leader: 1   Replicas: 1 Isr: 1
    Topic: tp_re_02 Partition: 1    Leader: 0   Replicas: 0 Isr: 0
    Topic: tp_re_02 Partition: 2    Leader: 1   Replicas: 1 Isr: 1
### --- 修改副本因子:错误

[root@hadoop01 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --alter --topic tp_re_02 --replication-factor 2
Option "[replication-factor]" can't be used with option"[alter]"
三、修改主题副本因子
### --- 使用kafka-reassign-partitions.sh 修改副本因子:创建increment-replication-factor.json

[root@hadoop01 ~]# vim increment-replication-factor.json
{
    "version":1,
    "partitions":[
        {"topic":"tp_re_02","partition":0,"replicas":[0,1]},
        {"topic":"tp_re_02","partition":1,"replicas":[0,1]},
        {"topic":"tp_re_02","partition":2,"replicas":[1,0]}
    ]
}
### --- 执行分配

[root@hadoop01 ~]# kafka-reassign-partitions.sh --zookeeper \
localhost:2181/myKafka --reassignment-json-file \
increment-replication-factor.json --execute
~~~输出参数
Current partition replica assignment

{"version":1,"partitions":[{"topic":"tp_re_02","partition":2,"replicas":
[1],"log_dirs":["any"]},{"topic":"tp_re_02","partition":1,"replicas":
[0],"log_dirs":["any"]},{"topic":"tp_re_02","partition":0,"replicas":
[1],"log_dirs":["any"]}]}

Save this to use as the --reassignment-json-file option during rollback
Successfully started reassignment of partitions.
### --- 查看主题细节:

[root@node1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka \
--describe --topic tp_re_02
~~~输出参数
Topic:tp_re_02  PartitionCount:3    ReplicationFactor:2 Configs:
    Topic: tp_re_02 Partition: 0    Leader: 1   Replicas: 0,1   Isr: 1,0
    Topic: tp_re_02 Partition: 1    Leader: 0   Replicas: 0,1   Isr: 0,1
    Topic: tp_re_02 Partition: 2    Leader: 1   Replicas: 1,0   Isr: 1,0

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(29)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示