本页介绍了如何升级实例或批处理流水线的版本。
将 Cloud Data Fusion 实例和批量流水线升级到最新的平台和插件版本,以获取最新功能、bug 修复和性能提升。
准备工作
- 计划升级的停机时间。 此过程可能需要一个小时才能完成。
- 
  
    In the Google Cloud console, activate Cloud Shell. 
限制
- 创建 Cloud Data Fusion 实例后,您无法更改其版本,即使通过升级操作也无法更改。 
- 请勿使用 Terraform 触发升级,因为该工具会删除并重新创建实例,而不是执行就地升级。此问题会导致实例中的所有现有数据丢失。 
- Cloud Data Fusion 不会重启因升级操作而停止的流水线。 
- 如果您将实例从 6.11.0 之前的版本升级,则升级停机时间会更长,尤其是在实例处理大量数据的情况下。 
- 不支持升级实时流水线,但使用 Kafka 实时来源在 6.8.0 版中创建的流水线除外。如需了解解决方法,请参阅升级实时流水线。 
升级 Cloud Data Fusion 实例
如需将 Cloud Data Fusion 实例升级到新的 Cloud Data Fusion 版本,请前往实例详情页面:
- 在 Google Cloud 控制台中,前往 Cloud Data Fusion 页面。 
- 点击实例,然后点击实例名称以前往实例详情页面。 
然后,使用 Google Cloud 控制台或 gcloud CLI 执行升级:
控制台
- 点击升级以获取可用版本的列表。 
- 选择一个版本。 
- 点击升级。 
- 验证升级是否成功: - 刷新实例详情页面。 
- 点击 查看实例,以在 Cloud Data Fusion 网页界面中访问升级后的实例。 
- 点击菜单栏中的系统管理员。 - 新的版本号会显示在页面顶部。 
 
- 如需避免在新版本中运行流水线时流水线卡住,请在升级后的实例中授予所需的角色。 
gcloud
- 如需升级到新的 Cloud Data Fusion 版本,请从本地终端 Cloud Shell 会话运行以下 gcloud CLI 命令: - gcloud beta data-fusion instances update INSTANCE_ID \ --project=PROJECT_ID \ --location=LOCATION_NAME \ --version=AVAILABLE_INSTANCE_VERSION- 可选:如果您的实例适用,请添加 - --enable_stackdriver_logging、- --enable_stackdriver_monitoring和- --labels标志。
- 可选:您可以将 CDAP 属性(例如 - enable.unrecoverable.reset)作为- --options传递。
 
- 请按照以下步骤验证升级是否成功: - 在 Google Cloud 控制台中,前往 Cloud Data Fusion 实例页面。 
- 点击 查看实例,以在 Cloud Data Fusion 网页界面中访问升级后的实例。 
- 点击菜单栏中的系统管理员。 - 新的版本号会显示在页面顶部。 
 
- 如需避免在新版本中运行流水线时流水线卡住,请在升级后的实例中授予所需的角色。 
升级批处理流水线
要升级 Cloud Data Fusion 批处理流水线以使用最新的插件版本,请执行以下操作:
- 推荐:备份所有流水线。您可以使用以下两种方式之一来备份流水线: - 请按照以下步骤下载 zip 文件: - 如需触发 ZIP 文件下载,请使用以下命令备份所有流水线:
 - echo $CDAP_ENDPOINT/v3/export/apps- 将输出的网址复制到浏览器中。
- 解压缩下载的文件,然后确认已导出所有流水线。流水线按命名空间组织。
 
- 使用源代码管理 (SCM) 备份流水线,此功能在 6.9 及更高版本中提供。SCM 提供 GitHub 集成,您可以使用该集成来备份流水线。 
 
- 按照以下步骤升级流水线: - 创建一个变量,指向您将在下一步中创建的 - pipeline_upgrade.json文件,以保存流水线列表。- export PIPELINE_LIST=PATH/pipeline_upgrade.json- 将 PATH 替换为文件的路径。 
- 使用以下命令创建实例和命名空间的所有流水线的列表。结果以 - JSON格式存储在- $PIPELINE_LIST文件中。您可以修改列表以移除不需要升级的流水线。- curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps -o $PIPELINE_LIST- 将 NAMESPACE_ID 替换为您要执行升级的命名空间。 
- 升级 - pipeline_upgrade.json中列出的流水线。插入要升级的流水线的 NAMESPACE_ID。该命令会显示升级流水线列表及其升级状态。- curl -N -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/upgrade --data @$PIPELINE_LIST- 将 NAMESPACE_ID 替换为要升级的流水线的命名空间 ID。 
 
- 如需避免在新版本中运行流水线时流水线卡住,请在升级后的实例中授予所需的角色。 
升级实时流水线
不支持升级实时流水线,除非流水线是在 6.8.0 版中创建的,并且包含 Kafka 实时来源。
对于其他所有内容,您应改为执行以下操作:
- 停止并导出流水线。
- 升级实例。
- 将实时流水线导入升级后的实例。
升级以启用复制功能
可以在 Cloud Data Fusion 版本 6.3.0 或更高版本中启用复制功能。如果您使用的是 6.2.3 版,请升级到 6.3.0,然后再升级到最新版本。然后,您可以启用复制功能。
为升级后的实例授予角色
升级完成后,向项目中的 Dataproc 服务账号授予 Cloud Data Fusion Runner 角色 (roles/datafusion.runner) 和 Cloud Storage Admin 角色 (roles/storage.admin)。
后续步骤
- 管理 Cloud Data Fusion 实例的补丁修订版本。
- 了解 Cloud Data Fusion 中的版本控制。
- 请参阅可用版本和补丁修订版本升级。
- 排查升级问题。