精华内容
下载资源
问答
  • kafka扩容

    2017-11-27 11:14:00
    需求: ...1.kafka 扩容 首先按照搭建步骤,在其他机器上搭建集群,kafka的配置文件中 zkconnect 要保持与原kafka一致 2.验证kafka新节点是否加入集群成功,这个应该去zookeeper的zkCli.sh 去查看...

    需求:

    对全kafka集群中的topic  :imp-imps-app-web增加partition和replicate



    1.kafka 扩容

    首先按照搭建步骤,在其他机器上搭建集群,kafka的配置文件中 zkconnect 要保持与原kafka一致


    2.验证kafka新节点是否加入集群成功,这个应该去zookeeper的zkCli.sh 去查看

    [zk: localhost:2181(CONNECTED) 3] ls /kafka/brokers/ids

    [27, 28, 29]



    3.创建了一个topic

    [root@zk-kafka001 bin]# ./kafka-topics.sh --create --zookeeper 10.0.150.27:2181/kafka --replication-factor 1 --partitions 1 --topic imp-imps-app-web




    2.列出所有topic


    ./kafka-topics.sh --list --zookeeper 10.0.150.27:2181/kafka




    3.修改了partiton数量


    ./kafka-topics.sh --zookeeper 10.0.150.27:2181/kafka --alter --topic imp-imps-app-web --partitions 3 


    4.查看一个topic的所有详细信息

    bin/kafka-topics.sh --describe --zookeeper 10.0.150.27:2181/kafka --topic mmm


    Topic:eee PartitionCount:3 ReplicationFactor:1 Configs:

    Topic: eee Partition: 0 Leader: 37 Replicas: 37 Isr: 37

    Topic: eee Partition: 1 Leader: 37 Replicas: 37 Isr: 37

    Topic: eee Partition: 2 Leader: 38 Replicas: 38 Isr: 38



    5. 

    在当前目录创建一个json文件

    reassignment-node.json


    vim imp-imps-app-web.json

    加入内容:


    {

        "partitions": [

            {

                "topic": "imp-imps-app-web",

                "partition": 0,

                "replicas": [

                    27,

                    28,

                    29

                ]

            },

            {

                "topic": "imp-imps-app-web",

                "partition": 1,

                "replicas": [

                    27,

                    28,

                    29

                ]

            }



        ]

    }


       





    6.修改replicas

    ./kafka-reassign-partitions.sh --zookeeper 10.0.150.27:2181/kafka --reassignment-json-file imp-imps-app-web.json  --execute 




    7.验证

    ./kafka-topics.sh --describe --zookeeper 10.0.150.34:2181/kafka --topic imp-imps-app-web


    Topic:imp-imps-app-web PartitionCount:3 ReplicationFactor:2 Configs:

    Topic: imp-imps-app-web Partition: 0 Leader: 34 Replicas: 34,35 Isr: 34,35

    Topic: imp-imps-app-web Partition: 1 Leader: 34 Replicas: 34,35,36 Isr: 36,34,35

    Topic: imp-imps-app-web Partition: 2 Leader: 38 Replicas: 38 Isr: 38





    查看kafka版本

    kafka查看版本需要查看libs下面jar包的名称。。。。

    /app/zpy/kafka/libs



    本文转自 周新宇1991 51CTO博客,原文链接:http://blog.51cto.com/zhouxinyu1991/1876616,如需转载请自行联系原作者

    展开全文
  • Kafka扩容之分区扩容

    2020-07-15 00:41:44
    分区扩容 举例,主题“user_order”目前是1个分区,这里将该主题分区增加到6个,观察修改结果 kafka-topics.sh --partitions 6 --alter --zookeeper dn1:2181,dn2:2181,dn3:2181 --topic user_order 这里只是修改...

    分区扩容

    举例,主题“user_order”目前是1个分区,这里将该主题分区增加到6个,观察修改结果

    kafka-topics.sh --partitions 6 --alter --zookeeper dn1:2181,dn2:2181,dn3:2181 --topic user_order
    

    这里只是修改分区数,但是数据还没有迁移过去

    使用kafka提供的工具kafka-reassign-partitions.sh来迁移数据。迁移数据需要分三步做:

    1. 生成迁移计划
      先手动生成一个topic.json,内容如下。这里topic可以是一个列

      {
      "topics": [{
      	"topic": "user_order"
      }],
      "version": 1
      }
      

      执行如下语句 --topics-to-move-json-file

      ./bin/kafka-reassign-partitions.sh --zookeeper dn1:2181,dn2:2181,dn3:2181 --topics-to-move-json-file topic.json --broker-list "0,1,2,3,4" --generate
      

      这句命令的意思是,将topic.json里的topic迁移到broker-list列表里列的broker上,会得到一个迁移执行计划

      Current partition replica assignment {
          "version": 1,
          "partitions": [....]
      }
      Proposed partition reassignment configuration {
          "version": 1,
          "partitions": [.....]
      }
      

      新建一个文件reassignment.json,保存上边这些信息。其中Current partition replica assignment指当前的分区情况,Proposed partition reassignment configuration是计划的分区情况

    2. 数据迁移
      执行如下命令

      ./bin/kafka-reassign-partitions.sh --zookeeper dn1:2181,dn2:2181,dn3:2181 --reassignment-json-file reassignment.json --execute
      
    3. 验证

      ./bin/kafka-reassign-partitions.sh --zookeeper dn1:2181,dn2:2181,dn3:2181 --reassignment-json-file reassignment.json --verify
      
    展开全文
  • kafka扩容和分区重新分配

    千次阅读 2018-05-10 14:01:37
    kafka扩容和分区重新分配2018年01月23日 17:32:57阅读数:545扩容:增加机器,例如原来三台服务器的kafka集群增加两台机器成为有五台机器的kafka集群,跟搭建差不多分区重新分配:在原来机器上的主题分区不会自动...
    kafka扩容和分区重新分配

    扩容:增加机器,例如原来三台服务器的kafka集群增加两台机器成为有五台机器的kafka集群,跟搭建差不多

    分区重新分配:在原来机器上的主题分区不会自动均衡到新的机器,需要使用分区重新分配工具来均衡均衡


    重新分配官方文档地址:点击打开链接

    翻译官方文档中文地址:点击打开链接

    上面两个链接中的文档描述的很详细。这里记录一下关键步骤,更主要是总结实际操作过来之后的问题和新的知识理解

    主要步骤

    1、确定要重启分配分区的主题,新建topics-to-move.json   json文件

     

    [java] view plain copy
    1. {  
    2.   "topics": [  
    3.     {"topic""foo1"},  
    4.     {"topic""foo2"}  
    5.   ],  
    6.   "version":1  
    7. }  
    8. // foo1 foo2 为要重新分配的主题  
    2、使用 bin/kafka-reassign-partitions.sh重新分配工具生成分配规则的json语句分配到         5,6机器

    [java] view plain copy
    1. bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --topics-to-move-json-file topics-to-move.json --broker-list "5,6"  –generate  
    3、有分配规则的json语句输出到控制台,复制到新建的json文件expand-cluster-reassignment.json中,例如:

    [java] view plain copy
    1. {"version":1,  
    2.   "partitions":[{"topic":"foo1","partition":0,"replicas":[5,6]},  
    3.         {"topic":"foo1","partition":1,"replicas":[5,6]},  
    4.                 {"topic":"foo1","partition":2,"replicas":[5,6]},  
    5.                 {"topic":"foo2","partition":0,"replicas":[5,6]},  
    6.                 {"topic":"foo2","partition":1,"replicas":[5,6]},  
    7.                 {"topic":"foo2","partition":2,"replicas":[5,6]}]  
    8. }  
    9.   
    10. //描述分配之后分区的分布情况  
    4、执行命令,开始分区重新分配

    [java] view plain copy
    1. bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file expand-cluster-reassignment.json –execute  
    5、验证是否完成

    [java] view plain copy
    1. bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file expand-cluster-reassignment.json –verify  
    2. //当输出全部都是completed successfully表明移动已经完成.  



    操作中三个小技巧:

    1、可以不需要第一步和第二步,自己手动新建分配的json文件。

    2、主题量很多的是就不要一个一个复制粘贴了,用excel的拼接函数,还是很方便

    3、最后一步验证中,主题很多的时候,会有很多在为未完成的输出语句夹杂其中。在语句后面加上  | grep -c "progress"就知         道有多少分区还没完成,输出为0的时候就是完成了。


    总结和知识点理解

    1、kafka新建主题时的分区分配策略:随机选取第一个分区节点,然后往后依次增加。例如第一个分区选取为1,第二个分区就       是2,第三个分区就是3.  1,2,3是brokerid。不会负载均衡,所以要手动重新分配分区操作,尽量均衡。

    2、在生产的同时进行数据迁移会出现重复数据。所以迁移的时候避免重复生产数据,应该停止迁移主题的生产。同时消费不           会,同时消费之后出现短暂的leader报错,会自动恢复。

    3、新增了broker节点,如果有主题的分区在新增加的节点上,生产和消费的客户端都应该在hosts配置文件中增加新增的               broker节点,否则无法生产消费,但是也不报错。

    展开全文
  • 【kafka】Kafka扩容

    2020-09-23 21:31:01
    "version":1 } 编辑好json文件后执行一下命令: ./kafka-reassign-partitions.sh --zookeeper 192.168.1.10:2181 --reassignment-json-file replicas-chatmessage-topic.json --execute 1.2 .topic的分区扩容用法 ...

    在这里插入图片描述

    1.概述

    参考:【Kafka】Kafka集群扩展以及重新分布分区

    1.1 topic修改(replicats-factor)副本个数

    假如初始时chatmessage为一个副本,为了提高可用性,需要改为2副本模式。脚本replicas-chatmessage-topic.json文件内容如下:

    {
            "partitions":
                    [
                    {
                            "topic": "chatmessage",
                            "partition": 0,
                            "replicas": [101,102,104]
                    },
                    {
                            "topic": "chatmessage",
                            "partition": 1,
                            "replicas": [102,103,106]
                    },
                  .......
            "version":1
    }
    

    编辑好json文件后执行一下命令:

    ./kafka-reassign-partitions.sh --zookeeper  192.168.1.10:2181 --reassignment-json-file  replicas-chatmessage-topic.json  --execute
    

    1.2 .topic的分区扩容用法

    先扩容分区数量,脚本如下:

    ./kafka-topics.sh --zookeeper 192.168.1.10:2181  --alter   --partitions 15   --topic   chatmessage
    

    把topic为chatmessage的分区数量扩展到15个。

    设置topic分区副本:

    {
            "partitions":
                    [
                    {
                            "topic": "chatmessage",
                            "partition": 12,
                            "replicas": [101,102]
                    },
                    {
                            "topic": "chatmessage",
                            "partition": 13,
                            "replicas": [103,104]
                    },
                    {
                            "topic": "chatmessage",
                            "partition": 14,
                            "replicas": [105,106]
                    }
                    ],             
            "version":1
    }
    

    编辑json文件,执行一下脚本:

    ./bin/kafka-reassign-partitions.sh --zookeeper  192.168..10:2181 --reassignment-json-file partitions-extension-chatmessage-topic.json  --execute
    

    参考:好文章

    展开全文
  • kafka扩容重平衡分区数据

    千次阅读 2019-11-12 17:49:52
    kafka集群扩容进行重新分区后需要对分区重平衡,否则容易导致分区数据倾斜。 详细过程请参考原博客:https://www.cnblogs.com/qcloud1001/p/8330233.html 注意:重分区是对分区切片所在节点的重新分配,而不是数据由...
  • kafka扩容增加brokers节点后,在Kakfa Maneger中已经看到新增的brokers节点已加入kafka集群,但是新增的brokers里并没有看到有topic存在。 2.原因 在扩容之前就已经存在的topic并不会自动地分配分区到新节点上...
  • Kafka扩容之主题迁移

    2020-07-14 23:14:29
    增加新服务到kafka集群是很容易的,只要为新服务分配一个独一无二的Broker ID并启动即可。但是,新的服务不会自动分配到任何数据,需要把分区数据迁移给它们,在此期间它们一直不工作,直到新的topic创建,所以,...
  • Kafka扩容和分区重新分配

    千次阅读 2019-05-07 11:11:48
    /opt/kafka_2.11-1.0.0/bin/kafka-reassign-partitions.sh --zookeeper 192.168.12.7:2181 --topics-to-move-json-file topics-to-move.json --broker-list "2,3" --generate /opt/kafka_2.11-1.0.0/bin/kafka-...
  • 扩容 在新的物理机上安装 kafka 程序,修改 config/server.properties 文件里的 broker.id 必须在集群中唯一,修改其他必要的配置项,其中 zookeeper.connect 配置项,写上kafka集群现在使用的zooke...
  • bin/kafka-reassign-partitions.sh --zookeeper zk1:2181 --topics-to-move-json-file topics-to-move.json --broker-list "3,4,5" --generate 将看到如下: Current partition replica assignment {"version...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 456
精华内容 182
关键字:

kafka扩容