【问题标题】:Migration Cloudera Kafka (CDK) to Apache Kafka将 Cloudera Kafka (CDK) 迁移到 Apache Kafka
【发布时间】:2019-10-22 11:40:43
【问题描述】:

我希望将每个代理上具有大约 300GB 数据的小型 4 节点 Kafka 集群迁移到新集群。问题是我们目前正在运行 Cloudera 风格的 Kafka (CDK),我们希望运行 Apache Kafka。在大多数情况下,CDK 与 Apache Kafka 非常相似,但我正在尝试找出迁移的最佳方式。我最初考虑使用 MirrorMaker,但据我了解,一旦我们将消费者切换到新集群,它就会重新处理消息,所以我认为这已经过时了。我想知道我们是否可以启动一个新的 Apache Kafka 集群并将其添加到 CDK 集群(不确定这将如何工作,如果有的话),然后一次停用一个 CDK 服务器。否则,除了启动一个新的 Apache Kafka 集群并只是对每个生产者/消费者进行代码更改以指向新集群之外,我没有其他想法。我不是很喜欢,因为它会导致停机。

当前运行 3.1.0,相当于 Apache Kafka 1.0.1

【问题讨论】:

  • 据我了解,Cloudera 不会管理不同的 Kafka 安装。他们可能会从 Apache 项目中反向移植其他补丁,但功能仍然相同

标签: apache-kafka


【解决方案1】:

MirrorMaker 会复制数据,但不会复制消费者偏移量,因此它们将保留其配置的 auto.offset.reset 策略。

我想知道我们是否可以启动一个新的 Apache Kafka 集群并将其添加到 CDK 集群中

如果可能,这将是迁移集群的最有效方式。对于每个新代理,给它一个唯一的代理 ID 和与其他代理相同的 Zookeeper 连接字符串,然后它将成为同一个集群的一部分。

然后,您需要手动运行分区重新分配工具,将所有现有主题分区从旧代理移到新代理上,因为数据不会自动复制

或者,您可以尝试关闭 CDK 集群,将数据目录备份到新代理上,然后在这些新机器上从您的 CDK 启动相同版本的 Kafka(因为存储的日志格式很重要)。

还要确保为新代理备份 server.properties 文件的副本

【讨论】:

  • 感谢 cricket_007 提供的提示,我将测试添加新代理并查看 CDK 集群的反应。您的替代解决方案也可能有效,但会有停机时间,但此时可能是不可避免的。
猜你喜欢
  • 1970-01-01
  • 2020-12-07
  • 2021-10-14
  • 2019-05-09
  • 1970-01-01
  • 2019-03-10
  • 2023-04-05
  • 2018-07-19
  • 1970-01-01
相关资源
最近更新 更多