将 Apache Spark 2.1 和2.2 工作负载迁移到 2.3 和 2.4Migrate Apache Spark 2.1 and 2.2 workloads to 2.3 and 2.4

本文档介绍如何将 Spark 2.1 和 2.2 上的 Apache Spark 工作负载迁移到 2.3 或 2.4。This document explains how to migrate Apache Spark workloads on Spark 2.1 and 2.2 to 2.3 or 2.4.

发行说明中所述,从 2020 年 7 月 1 日开始,将不支持以下群集配置,并且客户将无法创建具有这些配置的新群集:As discussed in the Release Notes, starting July 1, 2020, the following cluster configurations will not be supported and customers will not be able to create new clusters with these configurations:

  • HDInsight 3.6 Spark 群集中的 Spark 2.1 和 2.2Spark 2.1 and 2.2 in an HDInsight 3.6 Spark cluster
  • HDInsight 4.0 Spark 群集中的 Spark 2.3Spark 2.3 in an HDInsight 4.0 Spark cluster

这些配置中的现有群集将在没有 Microsoft 支持的情况下按原样运行。Existing clusters in these configurations will run as-is without support from Microsoft. 请考虑在 2020 年 6 月 30 日之前将 HDInsight 3.6 上的 Spark 2.1 或 2.2 转移到 HDInsight 3.6 上的 Spark 2.3,以避免潜在的系统/支持中断。If you are on Spark 2.1 or 2.2 on HDInsight 3.6, move to Spark 2.3 on HDInsight 3.6 by June 30 2020 to avoid potential system/support interruption. 请考虑在 2020 年 6 月 30 日之前将 HDInsight 4.0 上的 Spark 2.3 转移到 HDInsight 4.0 上的 Spark 2.4,以避免潜在的系统/支持中断。If you are on Spark 2.3 on an HDInsight 4.0 cluster, move to Spark 2.4 on HDInsight 4.0 by June 30 2020 to avoid potential system/support interruption.

有关将 HDInsight 群集从 3.6 迁移到 4.0 的一般信息,请参阅将 HDInsight 群集迁移到较新版本For general information about migrating an HDInsight cluster from 3.6 to 4.0, see Migrate HDInsight cluster to a newer version. 有关迁移到较新版 Apache Spark 的一般信息,请参阅 Apache Spark:版本控制策略For general information about migrating to a newer version of Apache Spark, see Apache Spark: Versioning Policy.

有关 HDInsight 上 Spark 版本升级的指南Guidance on Spark version upgrades on HDInsight

升级方案Upgrade scenario 机制Mechanism 注意事项Things to consider Spark Hive 集成Spark Hive integration
从 HDInsight 3.6 Spark 2.1 升级到 HDInsight 3.6 Spark 2.3HDInsight 3.6 Spark 2.1 to HDInsight 3.6 Spark 2.3 使用 HDInsight Spark 2.3 重新创建群集Recreate clusters with HDInsight Spark 2.3 请参阅以下文章:Review the following articles:
Apache Spark:从 Spark SQL 2.2 升级到 2.3Apache Spark: Upgrading From Spark SQL 2.2 to 2.3

Apache Spark:从 Spark SQL 2.1 升级到 2.2Apache Spark: Upgrading From Spark SQL 2.1 to 2.2
无更改No Change
从 HDInsight 3.6 Spark 2.2 升级到 HDInsight 3.6 Spark 2.3HDInsight 3.6 Spark 2.2 to HDInsight 3.6 Spark 2.3 使用 HDInsight Spark 2.3 重新创建群集Recreate clusters with HDInsight Spark 2.3 请参阅以下文章:Review the following articles:
Apache Spark:从 Spark SQL 2.2 升级到 2.3Apache Spark: Upgrading From Spark SQL 2.2 to 2.3
无更改No Change
从 HDInsight 3.6 Spark 2.1 升级到 HDInsight 4.0 Spark 2.4HDInsight 3.6 Spark 2.1 to HDInsight 4.0 Spark 2.4 使用 HDInsight 4.0 Spark 2.4 重新创建群集Recreate clusters with HDInsight 4.0 Spark 2.4 请参阅以下文章:Review the following articles:
Apache Spark:从 Spark SQL 2.3 升级到 2.4Apache Spark: Upgrading From Spark SQL 2.3 to 2.4

Apache Spark:从 Spark SQL 2.2 升级到 2.3Apache Spark: Upgrading From Spark SQL 2.2 to 2.3

Apache Spark:从 Spark SQL 2.1 升级到 2.2Apache Spark: Upgrading From Spark SQL 2.1 to 2.2
Spark Hive 集成在 HDInsight 4.0 中已更改。Spark Hive Integration has changed in HDInsight 4.0.

在 HDInsight 4.0 中,Spark 和 Hive 使用独立目录来访问 SparkSQL 或 Hive 表。In HDInsight 4.0, Spark and Hive use independent catalogs for accessing SparkSQL or Hive tables. Spark 创建的表位于 Spark 目录中。A table created by Spark lives in the Spark catalog. Hive 创建的表位于 Hive 目录中。A table created by Hive lives in the Hive catalog. 这与 HDInsight 3.6 不同,在 HDInsight 3.6 中,Hive 和 Spark 共享公共目录。This behavior is different than HDInsight 3.6 where Hive and Spark shared common catalog. HDInsight 4.0 中的 Hive 和 Spark 集成依赖于 Hive Warehouse Connector (HWC)。Hive and Spark Integration in HDInsight 4.0 relies on Hive Warehouse Connector (HWC). HWC 充当 Spark 和 Hive 之间的桥梁。HWC works as a bridge between Spark and Hive. 了解 Hive Warehouse Connector。Learn about Hive Warehouse Connector.
在 HDInsight 4.0 中,如果要在 Hive 和 Spark 之间共享元存储,可以通过在 Spark 群集中将 metastore.catalog.default 属性更改为 hive。In HDInsight 4.0 if you would like to Share the metastore between Hive and Spark, you can do so by changing the property metastore.catalog.default to hive in your Spark cluster. 可在 Ambari Advanced spark2-hive-site-override 中找到此属性。You can find this property in Ambari Advanced spark2-hive-site-override. 必须了解,元存储共享仅适用于外部 hive 表,对于内部/托管 hive 表或 ACID 表,将不能进行元存储共享。It’s important to understand that sharing of metastore only works for external hive tables, this will not work if you have internal/managed hive tables or ACID tables.

有关详细信息,请参阅将 Azure HDInsight 3.6 Hive 工作负载迁移到 HDInsight 4.0Read Migrate Azure HDInsight 3.6 Hive workloads to HDInsight 4.0 for more information.

从 HDInsight 3.6 Spark 2.2 升级到 HDInsight 4.0 Spark 2.4HDInsight 3.6 Spark 2.2 to HDInsight 4.0 Spark 2.4 使用 HDInsight 4.0 Spark 2.4 重新创建群集Recreate clusters with HDInsight 4.0 Spark 2.4 请参阅以下文章:Review the following articles:
Apache Spark:从 Spark SQL 2.3 升级到 2.4Apache Spark: Upgrading From Spark SQL 2.3 to 2.4

Apache Spark:从 Spark SQL 2.2 升级到 2.3Apache Spark: Upgrading From Spark SQL 2.2 to 2.3
Spark Hive 集成在 HDInsight 4.0 中已更改。Spark Hive Integration has changed in HDInsight 4.0.

在 HDInsight 4.0 中,Spark 和 Hive 使用独立目录来访问 SparkSQL 或 Hive 表。In HDInsight 4.0, Spark and Hive use independent catalogs for accessing SparkSQL or Hive tables. Spark 创建的表位于 Spark 目录中。A table created by Spark lives in the Spark catalog. Hive 创建的表位于 Hive 目录中。A table created by Hive lives in the Hive catalog. 这与 HDInsight 3.6 不同,在 HDInsight 3.6 中,Hive 和 Spark 共享公共目录。This behavior is different than HDInsight 3.6 where Hive and Spark shared common catalog. HDInsight 4.0 中的 Hive 和 Spark 集成依赖于 Hive Warehouse Connector (HWC)。Hive and Spark Integration in HDInsight 4.0 relies on Hive Warehouse Connector (HWC). HWC 充当 Spark 和 Hive 之间的桥梁。HWC works as a bridge between Spark and Hive. 了解 Hive Warehouse Connector。Learn about Hive Warehouse Connector.
在 HDInsight 4.0 中,如果要在 Hive 和 Spark 之间共享元存储,可以通过在 Spark 群集中将 metastore.catalog.default 属性更改为 hive。In HDInsight 4.0 if you would like to Share the metastore between Hive and Spark, you can do so by changing the property metastore.catalog.default to hive in your Spark cluster. 可在 Ambari Advanced spark2-hive-site-override 中找到此属性。You can find this property in Ambari Advanced spark2-hive-site-override. 必须了解,元存储共享仅适用于外部 hive 表,对于内部/托管 hive 表或 ACID 表,将不能进行元存储共享。It’s important to understand that sharing of metastore only works for external hive tables, this will not work if you have internal/managed hive tables or ACID tables.

有关详细信息,请参阅将 Azure HDInsight 3.6 Hive 工作负载迁移到 HDInsight 4.0Read Migrate Azure HDInsight 3.6 Hive workloads to HDInsight 4.0 for more information.

后续步骤Next steps