通过


你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 Apache Kafka 工作负载迁移到 Azure HDInsight 4.0

Azure HDInsight 4.0 提供最新的开源组件,在性能、连接和安全性方面具有显著增强功能。 本文档介绍如何将 HDInsight 3.6 上的 Apache Kafka 工作负载迁移到 HDInsight 4.0。 将工作负载迁移到 HDInsight 4.0 后,可以使用 HDInsight 3.6 上不可用的许多新功能。

HDInsight 3.6 Kafka 迁移路径

HDInsight 3.6 支持两个版本的 Kafka:1.0.0 和 1.1.0。 HDInsight 4.0 支持版本 1.1.0 和 2.1.0。 根据要运行的 Kafka 版本以及要运行的 HDInsight 版本,有多个受支持的迁移路径。 下面介绍了这些路径,如下图所示。

  • 在最新版本(建议)上运行 Kafka 和 HDInsight:将 HDInsight 3.6 和 Kafka 1.0.0 或 1.1.0 应用程序迁移到具有 Kafka 2.1.0 的 HDInsight 4.0(以下路径 D 和 E)。
  • 在最新版本上运行 HDInsight,但 Kafka 仅在较新版本上运行:将 HDInsight 3.6 和 Kafka 1.0.0 应用程序迁移到具有 Kafka 1.1.0 的 HDInsight 4.0(下面的路径 B)。
  • 在最新版本上运行 HDInsight,保留 Kafka 版本:使用 Kafka 1.1.0 将 HDInsight 3.6 和 Kafka 1.1.0 应用程序迁移到 HDInsight 4.0(以下路径 C)。
  • 在较新版本上运行 Kafka,保留 HDInsight 版本:将 Kafka 1.0.0 应用程序迁移到 1.1.0,并保留在 HDInsight 3.6 上(路径 A 如下)。 请注意,此选项仍需要部署新群集。 不支持升级现有群集上的 Kafka 版本。 创建具有所需版本的群集后,迁移 Kafka 客户端以使用新群集。

3.6 上的 Apache Kafka 升级路径。

Apache Kafka 版本

Kafka 1.1.0

如果从 Kafka 1.0.0 迁移到 1.1.0,则可以利用以下新功能:

  • 对 Kafka 控制器的改进加快了受控关闭速度,因此可以更快地重启中转站并从问题中恢复。
  • FetchRequests 逻辑中的改进,使你能够在群集上拥有更多分区(因此更多主题)。
  • Kafka Connect 支持 记录标头正则表达式 以用于主题。

有关更新的完整列表,请参阅 Apache Kafka 1.1 发行说明

Apache Kafka 2.1.0

如果迁移到 Kafka 2.1,则可以利用以下功能:

  • 由于复制协议得到改进,代理复原能力更好。
  • KafkaAdminClient API 中的新功能。
  • 可配置的配额管理。
  • 支持 Zstandard 压缩。

有关更新的完整列表,请参阅 Apache Kafka 2.0 发行说明Apache Kafka 2.1 发行说明

Kafka 客户端兼容性

新的 Kafka 代理支持旧客户端。 KIP-35 - 检索协议版本 引入了一种机制,用于动态确定 Kafka 中转站和 KIP-97 的功能:改进的 Kafka 客户端 RPC 兼容性策略 引入了新的兼容性策略和 Java 客户端保证。 以前,Kafka 客户端必须与相同版本或较新版本的代理进行交互。 现在,较新版本的 Java 客户端和其他支持 KIP-35 的客户端(例如 librdkafka ,可以回退到较旧的请求类型),或者在功能不可用时引发适当的错误。

升级 Kafka 客户端兼容性。

请注意,这并不意味着客户端兼容早期版本的代理。 有关详细信息,请参阅 兼容性矩阵

常规迁移过程

以下迁移指南假定在单个虚拟网络中的 HDInsight 3.6 上部署了 Apache Kafka 1.0.0 或 1.1.0 群集。 现有代理有一些主题,正在被生产者和消费者积极使用。

当前 Kafka 假设环境。

若要完成迁移,请执行以下步骤:

  1. 部署新的 HDInsight 4.0 群集和客户端进行测试。 部署新的 HDInsight 4.0 Kafka 群集。 如果可以选择多个 Kafka 群集版本,建议选择最新版本。 部署后,根据需要设置一些参数,并创建与现有环境同名的主题。 此外,根据需要设置 TLS 和自带密钥(BYOK)加密。 然后检查它是否适用于新群集。

    部署新的 HDInsight 4.0 群集。

  2. 切换生产者应用程序的群集,并等待当前消费者消费完所有队列数据。 当新的 HDInsight 4.0 Kafka 群集准备就绪时,将现有生成者目标切换到新群集。 保持原样,直到现有的消费者应用已使用完现有群集中的所有数据。

    为生产者应用程序切换群集。

  3. 在消费者应用程序上切换集群。 确认现有使用者应用程序已完成使用现有群集中的所有数据后,将连接切换到新群集。

    在客户端应用上切换群集。

  4. 根据需要删除旧群集并测试应用程序。 切换完成后,请根据需要删除旧的 HDInsight 3.6 Kafka 群集以及测试中使用的生成者和使用者。

后续步骤