更改 Cloud Data Fusion 中的 Dataproc 映像版本

本页介绍了如何更改 Cloud Data Fusion 实例使用的 Dataproc 映像版本。您可以在实例、命名空间或流水线级别更改映像。

准备工作

停止 Cloud Data Fusion 实例中的所有实时流水线和复制作业。如果在更改 Dataproc 映像版本时实时流水线或复制正在运行,则更改不会应用于流水线执行。

对于启用了检查点功能的实时流水线,停止这些流水线不会造成任何数据丢失。对于复制作业,只要数据库日志可用,停止后再启动复制作业就不会造成任何数据丢失。

控制台

  1. 前往 Cloud Data Fusion 的实例页面,然后打开需要停止流水线的实例。

    转到实例

  2. 在“流水线 Studio”中打开每个实时流水线,然后点击停止

  3. 复制页面上打开每个复制作业,然后点击停止

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 中检查并替换默认的 Dataproc 版本

  1. 前往 Cloud Data Fusion 网页界面

  2. 依次点击系统管理员 > 配置 > 系统偏好设置

    点击“修改系统偏好设置”

  3. 如果未在“系统偏好设置”中指定 Dataproc 映像,或者要更改偏好设置,请点击修改系统偏好设置

    1. 索引键字段中输入以下文本:

      system.profile.properties.imageVersion

    2. 值字段中输入所选的 Dataproc 映像,例如 2.1

    3. 点击保存并关闭

设置系统偏好设置

此更改会影响整个 Cloud Data Fusion 实例,包括其所有命名空间和流水线运行,除非映像版本属性在实例的命名空间、流水线或运行时参数中被替换。

更改 Dataproc 映像版本

您可以在 Cloud Data Fusion 网页界面的“计算配置”“命名空间偏好设置”或“流水线运行时参数”中设置映像版本。

在“命名空间偏好设置”中更改图片

如果您在命名空间属性中覆盖了映像版本,请执行以下步骤:

  1. 前往 Cloud Data Fusion 网页界面

  2. 点击系统管理员 > 配置 > 命名空间

  3. 打开每个命名空间,然后点击偏好设置

    1. 确保没有使用索引键 system.profile.properties.imageVersion 和不正确的映像版本值覆盖。

    2. 点击 Finish

在“系统计算配置文件”中更改图片

  1. 前往 Cloud Data Fusion 网页界面

  2. 依次点击系统管理员 > 配置

  3. 依次点击“系统”计算配置文件 > 创建新配置文件

  4. 选择 Dataproc 预配程序。

    选择 Dataproc 预配程序

  5. 为 Dataproc 创建配置文件。在映像版本字段中,输入 Dataproc 映像版本。

    输入映像版本

  6. Studio 页面上运行流水线时,选择此计算配置文件。在流水线运行页面上,依次点击配置 > 计算配置,然后选择此配置文件。

  7. 选择 Dataproc 配置文件,然后点击保存

  8. 点击 Finish

更改流水线运行时参数中的映像

如果您使用流水线运行时参数中的属性覆盖了映像版本,请执行以下步骤:

  1. 前往 Cloud Data Fusion 网页界面

  2. 依次点击菜单 菜单 > 列表

  3. 列表页面上,选择要更新的流水线。

    该流水线将在 Studio 页面上打开。

  4. 如需展开运行选项,请点击 展开箭头。

    系统会打开运行时参数窗口。

  5. 检查是否没有使用索引键 system.profile.properties.imageVersion 和不正确的映像版本值覆盖。

  6. 点击保存

    设置流水线运行时参数

使用所选的映像版本重新创建 Cloud Data Fusion 使用的静态 Dataproc 集群

如果您将现有 Dataproc 集群与 Cloud Data Fusion 搭配使用,请按照 Dataproc 指南使用为您的 Cloud Data Fusion 版本选择的 Dataproc 映像版本重新创建集群。

或者,您可以使用所选的 Dataproc 映像版本创建新的 Dataproc 集群,然后在 Cloud Data Fusion 中删除计算配置文件并使用相同的计算配置文件名称和更新后的 Dataproc 集群名称重新创建该计算配置文件。这样,运行批处理流水线就可以在现有集群上完成执行,而后续流水线将在新的 Dataproc 集群上运行。确认所有流水线运行已完成后,您可以删除旧的 Dataproc 集群。

检查 Dataproc 映像版本是否已更新

控制台

  1. 在 Google Cloud 控制台中,前往 Dataproc 集群页面。

    转到集群

  2. 打开您在指定新版本时 Cloud Data Fusion 创建的新集群的集群详细信息页面。

    映像版本字段具有您在 Cloud Data Fusion 中指定的新值。

REST API

  1. 获取集群及其元数据的列表:

    GET -H "Authorization: Bearer ${AUTH_TOKEN}" \
    https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION_ID/clusters
    

    替换以下内容:

    • PROJECT_ID 替换为您的命名空间名称
    • REGION_ID 替换为集群所在区域的名称
  2. 搜索流水线的名称(集群名称)。

  3. 在该 JSON 对象下,查看 config > softwareConfig > imageVersion 中的映像。

将 Dataproc 映像更改为版本 2.2 或 2.1

Cloud Data Fusion 6.9.1 及更高版本支持在 Java 11 中运行的 Dataproc 映像 2.1 Compute Engine。在 6.10.0 及更高版本中,映像 2.1 是默认映像。

如果您从较低版本的映像更改为映像 2.2 或 2.1,为了让批处理流水线和复制作业成功完成,数据库插件在这些实例中使用的 JDBC 驱动程序必须与 Java 11 兼容。

在 Cloud Data Fusion 中,Dataproc 映像 2.2 和 2.1 存在以下限制:

  • 不支持 MapReduce 作业。
  • 您实例中数据库插件中使用的 JDBC 驱动程序版本必须更新,才能支持 Java 11。请参阅下表,了解与 Dataproc 2.2、2.1 和 Java 11 搭配使用的驱动程序版本:
JDBC 驱动程序 从 Cloud Data Fusion 6.9.1 中移除了较低版本 与 Dataproc 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 及更高版本)

使用 Dataproc 2.2 或 2.1 时的内存用量

使用 Dataproc 2.2 或 2.1 集群的流水线的内存用量可能会增加。如果您将实例升级到 6.10 或更高版本,并且之前的流水线因内存问题而失败,请在流水线的 Resources 配置中将驱动程序和执行器内存增加到 2048 MB。

增加驱动程序和执行器内存

或者,您也可以通过将 system.profile.properties.imageVersion 运行时参数设置为 2.0-debian10 来替换 Dataproc 版本。