CC00056.kafka——|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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值