通过在 Cloud Data Fusion 中更新 Managed Service for Apache Spark 映像版本,您可以保持依赖项兼容性、访问新的 Spark 功能并解决流水线运行时问题。您可以在实例、命名空间或流水线级别配置此映像版本,以满足您的运营要求。
准备工作
停止 Cloud Data Fusion 实例中的所有实时流水线和复制作业。如果您在更改 Managed Service for Apache Spark 映像版本时运行实时流水线或复制,则更改不会应用于流水线执行。
对于实时流水线,如果启用了检查点,则停止流水线不会导致任何数据丢失。对于复制作业,只要数据库日志可用,停止和启动复制作业就不会导致数据丢失。
控制台
前往 Cloud Data Fusion 实例 页面,然后打开需要停止流水线的实例。
在“流水线 Studio”中打开每个实时流水线,然后点击停止 。
在复制 页面上打开每个复制作业,然后点击停止 。
REST API
如需检索所有流水线,请使用以下 REST API 调用:
GET -H "Authorization: Bearer ${AUTH_TOKEN}" \ "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps"将
NAMESPACE_ID替换为您的命名空间名称。如需停止实时流水线,请使用以下 REST API 调用:
POST -H "Authorization: Bearer ${AUTH_TOKEN}" \ "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps/PIPELINE_NAME/spark/DataStreamsSparkStreaming/stop"将 NAMESPACE_ID 替换为您的 命名空间名称,并将 PIPELINE_NAME 替换为实时 流水线的名称。
如需停止复制作业,请使用以下 REST API 调用:
POST -H "Authorization: Bearer ${AUTH_TOKEN}" \ "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps/REPLICATION_JOB_NAME/workers/DeltaWorker/stop"将 NAMESPACE_ID 替换为您的 命名空间名称,并将 REPLICATION_JOB_NAME 替换为复制作业的名称。
检查和替换 Cloud Data Fusion 中 Managed Service for Apache Spark 的默认版本
依次点击系统管理员 > 配置 > 系统 偏好设置。

如果未在“系统偏好设置”中指定 Managed Service for Apache Spark 映像,或者要更改偏好设置,请点击修改系统偏好设置 。
在索引键 字段中输入以下文本:
system.profile.properties.imageVersion在值字段中输入所选的 Managed Service for Apache Spark 映像, 例如
2.1。点击保存并关闭 。

除非在实例的命名空间、流水线或运行时实参中替换了映像版本属性,否则此更改会影响整个 Cloud Data Fusion 实例,包括其所有命名空间和流水线运行。
更改 Managed Service for Apache Spark 映像版本
可以在 Cloud Data Fusion 网页界面的计算配置、命名空间偏好设置或流水线运行时实参中设置映像版本。
在命名空间偏好设置中更改映像
如果您在命名空间属性中覆盖了映像版本,请执行以下步骤:
点击系统管理员 > 配置 > 命名空间。
打开每个命名空间,然后点击偏好设置。
确保没有使用索引键
system.profile.properties.imageVersion和不正确的映像版本值覆盖。点击完成 。
在系统计算配置文件中更改映像
点击系统管理员 > 配置。
依次点击系统计算配置文件>创建新配置文件。
选择 Managed Service for Apache Spark 预配器。

为 Managed Service for Apache Spark 创建配置文件。在映像版本 字段中,输入 Managed Service for Apache Spark 映像版本。

在 Studio 页面上运行流水线时,选择此计算配置文件。在流水线运行页面上,依次点击配置 > 计算 配置 ,然后选择此配置文件。
选择 Managed Service for Apache Spark 配置文件,然后点击保存 。
点击完成 。
在流水线运行时实参中更改映像
如果您已使用流水线运行时实参中的属性替换了映像版本,请执行以下步骤:
依次点击 菜单 Menu > List。
在列表 页面上,选择要更新的流水线。
流水线会在 Studio 页面上打开。
如需展开运行 选项,请点击 展开器箭头。
系统会打开运行时实参 窗口。
检查是否没有使用索引键
system.profile.properties.imageVersion和不正确的映像版本值覆盖。点击保存 。

使用所选映像版本重新创建 Cloud Data Fusion 使用的静态 Managed Service for Apache Spark 集群
如果您将现有 Managed Service for Apache Spark 集群与 Cloud Data Fusion 搭配使用,请按照 Managed Service for Apache Spark 指南,使用为您的 Cloud Data Fusion 版本选择的 Managed Service for Apache Spark 映像版本重新创建集群。
或者,您也可以使用所选的 Managed Service for Apache Spark 映像版本创建新的 Managed Service for Apache Spark 集群,并在 Cloud Data Fusion 中删除并重新创建计算配置文件,使用相同的计算配置文件名称和更新后的 Managed Service for Apache Spark 集群名称。这样,运行批处理流水线就可以在现有集群上完成执行,后续流水线运行会在新的 Managed Service for Apache Spark 集群上进行。在确认所有流水线运行都已完成后,您可以删除旧的 Managed Service for Apache Spark 集群。
检查 Managed Service for Apache Spark 映像版本是否已更新
控制台
在 Google Cloud 控制台中,前往 Managed Service for Apache Spark 集群 页面。
打开您在指定新版本时 Cloud Data Fusion 创建的新集群的集群详细信息页面。
映像版本字段具有您在 Cloud Data Fusion 中指定的新值。
REST API
获取集群及其元数据的列表:
GET -H "Authorization: Bearer ${AUTH_TOKEN}" \ https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION_ID/clusters替换以下内容:
- 将
PROJECT_ID替换为您的命名空间名称 - 将
REGION_ID替换为集群所在的区域的名称
- 将
搜索流水线的名称(集群名称)。
在该 JSON 对象下,查看
config > softwareConfig > imageVersion中的映像。
将 Managed Service for Apache Spark 映像更改为版本 2.1 或更高版本
Cloud Data Fusion 6.9.1 版及更高版本支持 Managed Service for Apache Spark 映像 2.1 Compute Engine,该映像在 Java 11 中运行。 在 6.10.0 版及更高版本中,映像 2.1 是默认映像。
如果您从早期映像更改为映像 2.1 或更高版本,为了使批处理流水线和复制作业成功,数据库插件在这些实例中使用的 JDBC 驱动程序必须与 Java 11 兼容。
Managed Service for Apache Spark 映像 2.2 和 2.1 在 Cloud Data Fusion 中有以下限制:
- 不支持 MapReduce 作业。
- 必须更新实例中数据库插件使用的 JDBC 驱动程序版本,以支持 Java 11。如需了解适用于 Managed Service for Apache Spark 2.2、2.1 和 Java 11 的驱动程序版本,请参阅下表:
| JDBC 驱动程序 | 从 Cloud Data Fusion 6.9.1 中移除的早期版本 | 适用于 Managed Service for Apache Spark 2.2、2.1 或 2.0 的 Java 8 和 Java 11 支持的版本 |
|---|---|---|
| Cloud SQL for MySQL JDBC 驱动程序 | - | 1.0.16 |
| Cloud SQL for PostgreSQL JDBC 驱动程序 | - | 1.0.16 |
| Microsoft SQL Server JDBC 驱动程序 | Microsoft JDBC 驱动程序 6.0 | Microsoft JDBC 驱动程序 9.4 |
| MySQL JDBC 驱动程序 | 5.0.8、5.1.39 | 8.0.25 |
| PostgreSQL JDBC 驱动程序 | 9.4.1211.jre7、9.4.1211.jre8 | 42.6.0.jre8 |
| Oracle JDBC 驱动程序 | ojdbc7 | ojdbc8(12c 及更高版本) |
使用 Managed Service for Apache Spark 2.1 或更高版本时的内存用量
对于使用 Managed Service for Apache Spark 2.1 或更高版本的流水线,内存用量可能会增加。如果您将实例升级到
6.10 版或更高版本,并且之前的流水线因内存问题而失败,请在流水线的 Resources 配置中将驱动程序和执行器内存增加到 2048 MB。

或者,您也可以将 system.profile.properties.imageVersion 运行时实参设置为 2.0-debian10,以替换
Managed Service for Apache Spark 版本。