将 HDInsight 群集迁移到较新版本
若要利用最新的 HDInsight 功能,建议将 HDInsight 群集定期迁移到最新版本。 HDInsight 不支持将现有群集升级到较新组件版本的就地升级。 必须使用所需的组件和平台版本创建新群集,然后迁移应用程序以使用新群集。 按照以下准则迁移 HDInsight 群集版本。
注意
如果要使用主存储容器创建 Hive 群集,请从现有 HDInsight 群集复制它。 请勿复制完整的内容。 仅复制配置的数据文件夹。
迁移任务
升级 HDInsight 群集的工作流如下所示。
- 请阅读本文档的每个部分,了解在升级 HDInsight 群集时可能需要进行的更改。
- 创建群集作为测试/质量保证环境。 有关创建群集的详细信息,请参阅了解如何创建基于 Linux 的 HDInsight 群集
- 将现有作业、数据源及接收器复制到新环境。
- 执行验证测试,以确保作业在新群集上按预期工作。
验证一切都按预期工作后,请为迁移安排停机时间。 在此停机期间,请执行以下操作:
- 备份所有存储在本地群集节点上的暂时性数据。 例如,如果数据直接存储在头节点上。
- 删除现有群集。
- 使用前一群集使用的同一默认数据存储在具有最新(或支持)的 HDI 版本的同一 VNET 子网中创建群集。 这样,新群集便可针对现有生产数据继续运行。
- 导入任何已备份的暂时性数据。
- 使用新群集启动作业/继续处理。
特定于工作负载的指南
以下文档提供有关如何迁移特定工作负载的指南:
备份和还原
有关数据库备份和还原的详细信息,请参阅使用自动数据库备份在 Azure SQL 数据库中恢复数据库。
升级方案
如前所述,Azure 建议定期将 HDInsight 群集迁移到最新版本,以利用新的功能和修复。 请参阅以下请求删除和重新部署群集的原因列表:
- 群集版本已停用,或者你遇到的群集问题可使用较新版本来解决。
- 已确定群集问题的根本原因与 VM 过小有关。 查看 Azure 的建议节点配置。
- 客户提交了一个支持案例,Azure 工程团队确定该问题已在较新的群集版本中得到解决。
- 默认元存储数据库(Ambari、Hive、Oozie、Ranger)已达到其利用率极限。 Azure 要求使用自定义元存储数据库重新创建群集。
- 群集问题的根本原因与某个不受支持的操作有关。 下面是一些常见的不受支持操作:
- 在 Ambari 中移动或添加服务。 查看有关 Ambari 中群集服务的信息,“服务操作”菜单中提供的一项操作是“移动 [服务名]”。 另一个操作是“添加 [服务名称]”。 这两个选项均不受支持。
- Python 包损坏。 HDInsight 群集依赖于内置 Python 环境 Python 2.7 和 Python 3.5。 直接在这些默认内置环境中安装自定义包可能会导致意外的库版本更改,并破坏群集。 了解如何为 Spark 应用程序安全地安装自定义的外部 Python 包。
- 第三方软件。 客户能够在其 HDInsight 群集上安装第三方软件;但如果它破坏现有功能,我们会建议重新创建群集。
- 同一群集上的多个工作负载。 在 HDInsight 4.0 中,Hive Warehouse Connector 需要对 Spark 和 Interactive Query 工作负载使用单独的群集。 按照这些步骤在 Azure HDInsight 中设置这两个群集。 同样,将 Spark 与 HBASE 集成也需要两个不同的群集。
- 自定义 Ambari DB 密码已更改。 Ambari DB 密码是在群集创建期间设置的,当前没有更新该密码的机制。 如果客户使用自定义 Ambari DB 部署群集,他们将能够在 SQL DB 上更改 DB 密码;但无法为正在运行的 HDInsight 群集更新此密码。
- 修改 HDInsight 负载均衡器。 不应修改或删除为 Ambari 和 SSH 访问自动部署的 HDInsight 负载均衡器。 如果修改 HDInsight 负载均衡器,而该均衡器中断了群集功能,建议重新部署相应群集。