将Cloudera Kafka(CDK)迁移到Apache Kafka

时间:2019-10-21 16:09:41

标签: apache-kafka

我希望将每个代理上具有约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

1 个答案:

答案 0 :(得分:0)

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

  

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

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

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

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

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