kafka之partition分区及副本replica升级

修改kafka的partition分区

bin/kafka-topics.sh --zookeeper datacollect-2:2181 --alter --partitions 3 --topic client-agent-1

修改kafka副本数

官网解释如下:

Increasing replication factor

Increasing the replication factor of an existing partition is easy. Just specify the extra replicas in the custom reassignment json file and use it with the --execute option to increase the replication factor of the specified partitions.
For instance, the following example increases the replication factor of partition 0 of topic foo from 1 to 3. Before increasing the replication factor, the partition‘s only replica existed on broker 5. As part of increasing the replication factor, we will add more replicas on brokers 6 and 7.

The first step is to hand craft the custom reassignment plan in a json file:

> cat increase-replication-factor.json
{"version":1,
"partitions":[{"topic":"foo","partition":0,"replicas":[5,6,7]}]}

准备json文件:

此文件结构没错,partition不够,需要根据实际情况完善此json文件。{
    "partitions":
        [
        {
            "topic": "speech-3",
            "partition": 2,
            "replicas": [0,2,3]
        },
        {
            "topic": "client-agent-3",
            "partition": 2,
            "replicas": [0,2,3]
        },
        {
            "topic": "session-manager-3",
            "partition": 2,
            "replicas": [0,2,3]
        },
        {
            "topic": "speech-2",
            "partition": 2,
            "replicas": [0,2,3]
        },
        {
            "topic": "client-agent-2",
            "partition": 2,
            "replicas": [0,2,3]
        },
        {
            "topic": "session-manager-2",
            "partition": 2,
            "replicas": [0,2,3]
        },
        {
            "topic": "speech-1",
            "partition": 2,
            "replicas": [0,2,3]
        },
        {
            "topic": "client-agent-1",
            "partition": 2,
            "replicas": [0,2,3]
        },
        {
            "topic": "session-manager-1",
            "partition": 2,
            "replicas": [0,2,3]
        }
        ],
    "version":1
}

开始执行副本升级:

bin/kafka-reassign-partitions.sh --zookeeper datacollect-2:2181 --reassignment-json-file json.json --execute

验证是否完成:

  

bin/kafka-reassign-partitions.sh --zookeeper datacollect-2:2181 --reassignment-json-file json.json --verify

参考:

  kafka修改分区和副本数 http://blog.csdn.net/haifeng000haifeng/article/details/50914197

   kafka运维--增加topic备份因子 http://blog.csdn.net/yanshu2012/article/details/53761284

  kafka迁移与扩容 http://liyonghui160com.iteye.com/blog/2193430

  Kafka 消息不能接收的问题 http://blog.csdn.net/lg772ef/article/details/65633359

时间: 2024-10-06 00:53:17

kafka之partition分区及副本replica升级的相关文章

kafka 分区和副本以及kafaka 执行流程,以及消息的高可用

1.Kafka概览 Apache下的项目Kafka(卡夫卡)是一个分布式流处理平台,它的流行是因为卡夫卡系统的设计和操作简单,能充分利用磁盘的顺序读写特性.kafka每秒钟能有百万条消息的吞吐量,因此很适合实时的数据流处理.例如kafka在线日志收集系统可作为flume的实时消息sink端,再通过kafka的消费者将消息实时写入hbase数据库中. 卡夫卡以topic分类对记录进行存储,每个记录包含key-value和timestamp. 1.1卡夫卡系统的组件.角色 broker: 每个正在运

Kafka(五)Kafka分区与副本

Kafka分区和副本都是由副本管理器所管理的,引入副本就是为了提高可用性,整个集群中如何判断代理是否存活? 一个存活的代理必须与Zookeeper保持连接,通过Zookeeper的心跳机制来实现的 作为一个Follower副本,该副本不能落后Leader副本太久(怎么算太久?)replica.lag.max.messages配置项确定的,默认为10秒. 满足上面2个条件则认为该副本或者节点处于同步中(in sync).Leader副本会追中所有同步中的节点,一旦一个节点宕机或者落后太久,Lead

Kafka Topic Partition Replica Assignment实现原理及资源隔离方案

本文共分为三个部分: Kafka Topic创建方式 Kafka Topic Partitions Assignment实现原理 Kafka资源隔离方案 1. Kafka Topic创建方式 Kafka Topic创建方式有以下两种表现形式: (1)创建Topic时直接指定Topic Partition Replica与Kafka Broker之间的存储映射关系 /usr/lib/kafka_2.10-0.8.2.1/bin/kafka-topics.sh --zookeeper ZooKeep

MySQL partition分区I

http://blog.csdn.net/binger819623/article/details/5280267 一.        分区的概念二.        为什么使用分区?(优点)三.        分区类型四.        子分区五.        对分区进行修改(增加.删除.分解.合并)六.        不同引擎的分区特性七.        分区的限制性 分区概念分区针对不同的数据库,具有不同的特性.在这里专门针对MySQL数据库而言.在MySQL数据库里,分区这个概念是从my

Kafka Topic Partition GroupId 及高可用

Topic主题用来区分不同类型的消息,实际也就是适用于不同的业务场景,默认消息保存一周时间: 同一个Topic主题下,默认是一个partition分区,也就是只能有一个消费者来消费,如果想提升消费能力,就需要增加分区: 同一个Topic的多个分区,可以有三种方式分派消息(key,value)到不同的分区,指定分区.HASH路由.默认,同一个分区内的消息ID唯一,并顺序: 消费者消费partition分区内的消息时,是通过offsert来标识消息的位置: GroupId用来解决同一个Topic主题

mysql的partition分区

前言:当一个表里面存储的数据特别多的时候,比如单个.myd数据都已经达到10G了的话,必然导致读取的效率很低,这个时候我们可以采用把数据分到几张表里面来解决问题.方式一:通过业务逻辑根据数据的大小通过id%10这种来分成 user1,user2,user3等这样的,但是这样会有很多问题我们需要维护这样一个hash关系, 而且每次读取数据和写入数据的时候还要去判断取那张表,这个是我们通过程序去识别写表和读表的.方式二:mysql可以通过partition进行分区,这种分区显示给我们的数据依然都是在

Mysql Partition分区(理论)

Partition  分区 拿来主义,MySql 5.6 手册:http://dev.mysql.com/doc/refman/5.6/en/partitioning.html 分区类型 MySql 支持Range,List,Hash,Key.最长用的是Range Range:范围 CREATE TABLE employees (     id INT NOT NULL,     fname VARCHAR(30),     lname VARCHAR(30),     hired DATE N

mysql Partition(分区)初探

mysql Partition(分区)初探 表数据量大的时候一般都考虑水平拆分,即所谓的sharding.不过mysql本身具有分区功能,可以实现一定程度 的水平切分. mysql是具有MERGE这种引擎的,就是把一些结构相同的MyIASM表作为一个表使用,但是我觉得 MERGE不如partition实用, www.2cto.com 因为MERGE会在所有的底层表上查询,而partition只在相应的分区上查询. 建立了两个表,分别为分区和未分区的,分区表按年进行分区. Sql代码 CREATE

kafka分区及副本在broker的分配

部分内容参考自:http://blog.csdn.net/lizhitao/article/details/41778193 下面以一个Kafka集群中4个Broker举例,创建1个topic包含4个Partition,2 Replication:数据Producer流动如图所示: (1) pic (2)当集群中新增2节点,Partition增加到6个时分布情况如下: 副本分配逻辑规则如下: 在Kafka集群中,每个Broker都有均等分配Partition的Leader机会. 上述图Broke