参考site:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools

目前我们的topic  test-add-replication-topic中partition 0的replicas为[1,2],则1为preferred replica,应该成为leader。 
这时我们期望2为preferred replica,并变成leader。

操作步骤:

1. 查看当前topic详细信息:

  > bin/kafka-topics.sh --describe --zookeeper h1:2181 --topic test-add-replication-topic

    Topic:test-add-replication-topic PartitionCount:3 ReplicationFactor:3 Configs:

      Topic: test-add-replication-topic Partition: 0 Leader: 1 Replicas: 1,2 Isr: 1,2

      Topic: test-add-replication-topic Partition: 1 Leader: 2 Replicas: 2,0,1 Isr: 0,1,2
      Topic: test-add-replication-topic Partition: 2 Leader: 0 Replicas: 0,1 Isr: 0,1

2. 修改replicas顺序

  > cat partitions-to-move.json 

    

      "version":1,
      "partitions":
      [
      {
        "topic":"test-add-replication-topic",
        "partition":0,
        "replicas":[2,1]
      }
      ]
    }

  > bin/kafka-reassign-partitions.sh --zookeeper h1:2181 --reassignment-json-file partitions-to-move.json --execute

    Current partition replica assignment

    {"version":1,"partitions":[{"topic":"test-add-replication-topic","partition":1,"replicas":[2,0,1]},{"topic":"test-add-replication-topic","partition":2,"replicas":[0,1]},

    {"topic":"test-add-replication-topic","partition":0,"replicas":[1,2]}]}

    Save this to use as the --reassignment-json-file option during rollback
    Successfully started reassignment of partitions {"version":1,"partitions":[{"topic":"test-add-replication-topic","partition":0,"replicas":[2,1]}]}

3. 更改leader

  > cat topicPartition.json 

    {
      "version":1,
      "partitions":
      [
      {
        "topic":"test-add-replication-topic",
        "partition":0
      }
      ]
    }

  > bin/kafka-preferred-replica-election.sh --zookeeper h1:2181 --path-to-json-file topicPartition.json 

    Successfully started preferred replica election for partitions Set([test-add-replication-topic,0])

4.检查replicas leader切换情况 

  > bin/kafka-topics.sh --describe --zookeeper h1:2181 --topic test-add-replication-topic

    Topic:test-add-replication-topic PartitionCount:3 ReplicationFactor:3 Configs:

      Topic: test-add-replication-topic Partition: 0 Leader: 2 Replicas: 2,1 Isr: 1,2
      Topic: test-add-replication-topic Partition: 1 Leader: 2 Replicas: 2,0,1 Isr: 0,1,2
      Topic: test-add-replication-topic Partition: 2 Leader: 0 Replicas: 0,1 Isr: 0,1

  到此,partition 0中的leader已经修改成功。

 

在Kafka中修改Topic的preferred replica的更多相关文章

  1. 删除Kafka中的topic

    删除Kafka中的topic 一.配置delete.topic.enable=true 二.其他方法 一.配置delete.topic.enable=true 修改kafaka配置文件server.p ...

  2. Kafka中操作topic时 Error:Failed to parse the broker info from zookeeper

      Kafka中操作topic时 Error: Failed to parse the broker info from zookeeper 1.问题描述   2.问题原因     kafka在启动后 ...

  3. kafka之五:如何手动更新Kafka中某个Topic的偏移量

    本文介绍如何手动跟新zookeeper中的偏移量.我们在使用kafka的过程中,有时候需要通过修改偏移量来进行重新消费.我们都知道offsets是记录在zookeeper中的,所以我们想修改offse ...

  4. 彻底删除Kafka中的topic

    1.删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录 2.Kafka 删除topic ...

  5. kafka中常用API的简单JAVA代码

    通过之前<kafka分布式消息队列介绍以及集群安装>的介绍,对kafka有了初步的了解.本文主要讲述java代码中常用的操作. 准备:增加kafka依赖 <dependency> ...

  6. (一)kafka修改topic分区的位置

    (一)kafka修改topic分区的位置 环境:kafka_2.10-0.8.2.1 + JDK1.7.0_80 1. 查看分区topic的分区分布 $ le-kafka-topics.sh --de ...

  7. Kafka Java consumer动态修改topic订阅

    前段时间在Kafka QQ群中有人问及此事——关于Java consumer如何动态修改topic订阅的问题.仔细一想才发现这的确是个好问题,因为如果简单地在另一个线程中直接持有consumer实例然 ...

  8. Kafka中Topic级别配置

    一.Kafka中topic级别配置 1.Topic级别配置 配置topic级别参数时,相同(参数)属性topic级别会覆盖全局的,否则默认为全局配置属性值. 创建topic参数可以设置一个或多个--c ...

  9. kafka中server.properties配置文件参数说明

    转自:http://blog.csdn.net/lizhitao/article/details/25667831 参数 说明(解释) broker.id =0 每一个broker在集群中的唯一表示, ...

随机推荐

  1. logic:present 和 logic:empty的用法 (转)

    logic:empty和logic:notEmpty logic:empty标签判断脚本变量是否为null,是否是一个空的字符串(长度为0),是否是一个空的collection或map(调用isEmp ...

  2. iBatis 的修改一个实体

    Student.xml <update id="updateStudent" parameterClass="Student" > UPDATE S ...

  3. Building Local Unit Tests

    If your unit test has no dependencies or only has simple dependencies on Android, you should run you ...

  4. hdoj 2602(背包)

    Problem D Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Sub ...

  5. MATLAB中mexFunction函数的接口规范

    MEX文件的调用极为方便,其调用方式与MATALAB的内建函数完全相同,只需要在命令窗口内输入对应的文件名称即可. C语言MEX程序代码文件有计算子例程(Computational routine)和 ...

  6. JeeSite试用

    JeeSite主要定位于企业信息化领域.网址:http://www.oschina.net/p/jeesite 从描述来看,各种NB,下来看的最主要原因是最近还在更新,觉得有问题可以有一批人一起研究研 ...

  7. Java使用百度云存储BCS-让你的数据下载飞起来

    作者:Vinkn 来自http://www.cnblogs.com/Vinkn/ 一.简介 云也不是一个新概念了,云到底是什么东西,你叫我说个明明白白的我也说不出来,姑且算作联网的就叫做云.国内的云服 ...

  8. Java环境配置出现的问题及解决办法

    我使用的安装文件,从博客园一个童鞋那里找到的,连接是http://www.cnblogs.com/SelectError/p/3205582.html#commentform 开发基础环境,版本为Ja ...

  9. Html5游戏框架createJs的简单用法

    声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢!http://www.it165.net/pro/html/201403/11105.html 楼主记忆力不好,最近刚好用了一下create ...

  10. PHP 字符串常用方法

    implode(“”,“”)-->字符串分割方法,第一个参数以什么样的形式分割,第二个参数需要分割的字符串 数组操作 is_array(),判断这个数是否是一个数组