【问题标题】:How to add a new Kafka brokers machines dynamically to a cluster如何将新的 Kafka 代理机器动态添加到集群中
【发布时间】:2020-11-25 17:55:09
【问题描述】:

我们有 Kafka 融合集群,集群包括 3 个 Kafka 代理,

版本详情:

Kafka machines are installed on rhel version 7.2 
Kafka confluent version is 0.1x
Zookeeper version: 3.4.10
schema-registry version: 4.0.0

每台 Kafka 代理机器都包含以下服务

Kafka broker
Zookeeper server
Schema registry

现在我们想在当前的 Kafka 集群中添加一个额外的新的 3 Kafka 代理机器(额外的 Kafka 机器是 - kafka04/05/06 与相同的 Kafka 版本 - 0.1X,)

所以集群最终应该是:

6 Kafka 经纪人机器 - kafka01, kafka02 , kafka03 , kafka04 , kakfa05 , kafka05

3 zookeeper 服务器 - kafka01, kafka02 , kafka03

3 schema registry 服务 - kafka01, kafka02 , kafka03

为了将新的3 Kafka 代理连接到现有的 Kafka 集群,我们需要更改所有 Kafka 机器(旧 Kafka 机器和新 Kafka 机器)上的配置

我们不确定 Kafka 代理中究竟应该更改哪些配置文件,但根据我的理解,我们应该将 Kafka 和 zookeeper 设置更改如下

我很乐意收到有关以下程序的评论/说明

  1. 在新的 Kafka 代理 - kafka04/05/06 上编辑 server.properties 文件,并将 broker.id 参数更改如下

    关于 kafka04 - broker.id=4 在 kafka05 - broker.id=5 关于 kafka06 - broker.id=6

  2. 编辑所有 Kafka 机器上的 server.properties - kafka01/02/03/04/05/06 并将以下参数更改为集群中的总节点数

     offsets.topic.replication.factor=6
     transaction.state.log.replication.factor=6
    
  3. 在新的 Kafka 机器上 - Kafka 04/05/06 编辑 server.properties 并使用位于 kafka01kafka02kafka03 上的 zookeeper 服务器 IP 更新参数 - zookeeper.connect

    例子

     zookeeper.connect=10.10.10.1:2181,10.10.10.2:2181,10.10.10.3:2181
    
  4. 在 Kafka 机器上 - kafka 04/05/06 ,编辑文件 - zookeeper.properties 作为
    关注

    server.1=10.10.10.1:2888:3888
    server.2=10.10.10.2:2888:3888
    server.3=10.10.10.3:2888:3888
    
  5. 编辑文件 - Kafka 04/05/06 上的 myid 文件,并将参数 broker.id 更改为 关注

    kafka04 设置:

     broker.id=4
    

    kafka05 设置:

     broker.id=5
    

    kafka06 设置:

     broker.id=6
    
  6. 如上设置后,重启kafka01/02/03/04/05/06上的所有Kafka brokers服务并重启kafka01/02/03上的zookeeper服务器

    并验证所有Kafka服务和zookeeper服务启动成功

参考信息 - https://www2.microstrategy.com/producthelp/current/PlatformAnalytics/en-us/Content/Add_kafka_node_to_kafka_cluster.htm

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    添加代理时,您无需更改现有代理的配置,也无需重新启动它们。如果您不添加新的 ZooKeeper 服务器,这同样适用于 ZooKeeper。

    在新的代理上,您只需要设置一个不同的broker.id 值。

    我不建议将主题(包括内部)的复制因子增加到 3 以上。

    启动新代理后,您可能需要重新平衡现有数据。有很多工具可以做到这一点,包括kafka-reassign-partitions.sh 工具。 Kafka 文档中有一个部分详细说明了该过程:https://kafka.apache.org/documentation/#basic_ops_cluster_expansion

    【讨论】:

    • 但是kafka机器kafka01-kafka06上的zookeeper.properties呢?
    • 我更新了关于 zookeeper.properties 的问题,可以吗?
    • 如果你不在这些新机器上运行 ZooKeeper,你就不需要接触zookeeper.properties
    • 所以我需要将 zookeeper.properties 从 kafka01 复制到新的 kafka 机器上?
    • 如果你不在这些新机器上运行 ZooKeeper,你甚至不需要那里的 zookeeper.properties 文件!只有在机器上运行 ZooKeeper 时才需要此文件。
    猜你喜欢
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    相关资源
    最近更新 更多