修改Kafka topic的replication-factor

13 篇文章 1 订阅
10 篇文章 1 订阅

集群信息

kafka集群有三台broker,id分别为:0,1,2

查看topic的replication-factor信息:

[root@ali-37 bin]# ./kafka-topics.sh --zookeeper localhost:2182 --describe --topic connect-configs
Topic:connect-configs   PartitionCount:1    ReplicationFactor:1 Configs:cleanup.policy=compact
    Topic: connect-configs  Partition: 0    Leader: 2   Replicas: 2 Isr: 2
[root@ali-37 bin]# 

可以看到ReplicationFactor为1,并且Leader、Replicas、Isr都在broker id=2的机器上。

编辑修改信息json文件

[root@ali-37 kafka_2.11-2.0.0]# cat increase-replication-factor.json 
{"version":1,
"partitions":[{"topic":"connect-configs","partition":0,"replicas":[0,1,2]}]
}
[root@ali-37 kafka_2.11-2.0.0]# 

由于connect-configs这个topic只有一个partition,文件中指定了其partition 0的replicas在broker id = 0,1,2这三台broker上。如果有多个partition,可以在partitions后面放一个数组,针对每一个partition进行修改副本数。

执行修改命令

[root@ali-37 kafka_2.11-2.0.0]# bin/kafka-reassign-partitions.sh --zookeeper localhost:2182 --reassignment-json-file increase-replication-factor.json --execute
Current partition replica assignment

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

Save this to use as the --reassignment-json-file option during rollback
Successfully started reassignment of partitions.
[root@ali-37 kafka_2.11-2.0.0]# 

看到控制台输出成功开始partitions的再分配,但是分配结果如何,需要用下面的命令验证一下。

验证修改是否成功

[root@ali-37 kafka_2.11-2.0.0]# bin/kafka-reassign-partitions.sh --zookeeper localhost:2182 --reassignment-json-file increase-replication-factor.json --verify
Status of partition reassignment: 
Reassignment of partition connect-configs-0 completed successfully
[root@ali-37 kafka_2.11-2.0.0]# 

注意这儿验证的json文件和上一步的是同一个文件,只是换成了--verify选项。可以看到再分配的状态是成功的。

再查看topic信息

[root@ali-37 kafka_2.11-2.0.0]# bin/kafka-topics.sh --zookeeper localhost:2182 --topic connect-configs --describe
Topic:connect-configs   PartitionCount:1    ReplicationFactor:3 Configs:cleanup.policy=compact
    Topic: connect-configs  Partition: 0    Leader: 2   Replicas: 0,1,2 Isr: 2,0,1
[root@ali-37 kafka_2.11-2.0.0]# 

可以看到ReplicationFactor已经变成了3,Leader在broker id = 2的机器上,副本和同步副本都在broker id = 0,1,2这三台机器上。整个修改过程完成。

参考Kafka官方网站:http://kafka.apache.org/documentation/#basic_ops_increase_replication_factor

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
kafka_2.9.2-0.8.2.1.tgz 安装 liunx环境 安装jdk vi /etc/profile在末尾追加 JAVA_HOME JRE_HOME PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib source /etc/profile使环境变量立刻生效 安装kafka 解压 tar -xzvf kafka_2.8.0-0.8.1.tgz ;rm kafka_2.8.0-0.8.1.tgz; cd kafka_2.8.0-0.8.1 修改配置 Kafka默认开启JVM压缩指针,但只是在64位的HotSpot VM受支持,如果安装了32位的HotSpot VM,需要修改/bin/kafka-run-class.sh文件 KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true" 去除-XX:+UseCompressedOops参 启动 bin/zookeeper-server-start.sh config/zookeeper.properties & bin/kafka-server-start.sh config/server.properties & 停止 bin/kafka-server-start.sh config/server.properties & bin/zookeeper-server-start.sh config/zookeeper.properties & create a topic bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test 创建单partitions单replicationtopic bin/kafka-topics.sh --list --zookeeper localhost:2181 查看topic 查看topic分区 bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test 启动生产者 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 启动消费者 bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning produce启动的时候参使用的是kafka的端口而consumer启动的时候使用的是zookeeper的端口; 单机连通性能测试 运行producer bin/kafka-console-producer.sh --b

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值