【问题标题】:How to delete Kafka brokers machines from kafka cluster如何从 kafka 集群中删除 Kafka 代理机器
【发布时间】:2020-12-09 00:35:28
【问题描述】:

我们有 Kafka 集群,集群包括 7 Kafka 代理,

版本详情:

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

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

Kafka broker
Zookeeper server
Schema registry

现在我们要从当前 Kafka 集群中删除 2 Kafka 代理机器(我们要删除的 Kafka 机器是 - 06/07(Kafka 版本 - 0.1X,)

所以集群最终应该是:

5 Kafka 代理机器 - kafka01, kafka02 , kafka03 , kafka04 , kakfa05 , kafka05

3 zookeeper 安装在kafka01, kafka02 , kafka03 上的服务器/服务

5 schema registry 上安装的服务kafka01, kafka02 , kafka03 , kakfa05 , kafka05

当我们从集群中删除 Kafka 代理时,我们不确定应该更改 Kafka 代理中的确切配置文件 - kafka 07/06

我很乐意收到有关 Kafka 代理删除程序的评论/说明

据我了解,我们需要执行以下操作才能删除 kafka 机器 - kafka 06/07

kafka06/07

停止服务

Kafka broker
Zookeeper server
Schema registry

然后关闭kafka06/07机器

init 0

然后在kafka01/02/03/04/05上重启以下服务

Kafka broker
Zookeeper server
Schema registry

【问题讨论】:

    标签: apache-kafka apache-zookeeper


    【解决方案1】:

    要删除 Kafka 代理组件,首先使用 kafka-reassign-partitions.sh 脚本从 Kafka 代理中识别并重新分配您要停用的 Kafka 主题分区领导者,然后关闭 Kafka 代理服务。

    并从生产者和消费者的引导服务器中删除主机。

    【讨论】:

    • 我不明白为什么我们需要执行 kafka-reassign-partitions.sh ,因为我知道当我们将 kafka 添加到集群时,您需要按顺序执行 reassign-partitions 是对的将数据从主题移动到新的 kafka ,但在我们的例子中,我们从集群中删除 kafka06/07 ,也许你的意思是 - 在我们停止 kafka06/07 上的服务 Kafka 代理 Zookeeper 服务器模式注册表之后,只有这样我们需要做 Kafka-reassign-partitions ,以便将领导者更新为 kafka01-05 ------ 我在这里正确吗?
    • Zookeeper 保存主题的元数据及其领导者。如果您不重新分配,它将如何将副本更改为其他节点。如果有 ISR,leader 也会切换。如果不是,那么该主题分区将失败。对于有 ISR 的人,leader 将更改为现有的,但 zookeeper 将如何知道 Kafka06 已退役。如果不重新分配,它将永远保持该分区的复制不足。因此,如果您想正确停用它,建议您重新分配。如果不是,则将其视为代理关闭状态。
    • 应该在停止服务之前。在您关闭任何代理之前,消费者和生产者都不应该与它交谈,也不应该进行任何代理间的通信(如复制)。这意味着没有主题分区应该驻留在代理上,只有这样你才应该关闭代理。此外,请确保您的控制器在这些操作期间保持稳定。
    • 抱歉,但在停止 kafka 之前执行重新分配仍然没有意义,当在 kafka06/07 上停止服务 kafka 然后进行重新分配时,它更合乎逻辑,我这么说是因为我们在什么时候实现的我们在停止 kafka 之前进行重新分配。如果所有经纪人 id 都是平衡的并且 kafka 是稳定的?
    • 停止和重新分配甚至没有意义。请再次浏览 kafka 的文档。我已经通过这种方式淘汰了许多经纪人。如果您想以错误的方式进行操作,请继续尝试。一旦服务关闭,则无法与该服务进行通信,那么您如何重新分配?如果您有一个分区的 1RF 并且在 Kafka06/07 上,那么如果您将它们关闭,您将如何重新分配。甚至无法访问代理,那么您将如何获取数据?
    猜你喜欢
    • 2017-01-16
    • 1970-01-01
    • 2020-05-08
    • 2019-07-01
    • 2018-12-14
    • 2021-01-01
    • 2020-11-25
    • 2017-05-18
    • 2021-12-04
    相关资源
    最近更新 更多