本页介绍如何升级实例或批处理流水线的版本。
将 Cloud Data Fusion 实例和批处理流水线升级到最新平台和插件版本,以获取最新功能、bug 修复和性能改进。
准备工作
- 为升级规划预定的停机时间。 此过程最多需要一个小时。
-
在 Google Cloud 控制台中,激活 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 实时来源的流水线除外。
对于其他所有情况,请改为执行以下操作:
- 停止并导出流水线。
- 升级实例。
- 将实时流水线导入到升级后的实例中。
升级以启用复制功能
在 6.3.0 版或更高版本的 Cloud Data Fusion 环境中,可以启用复制功能。如果您使用的是 6.2.3 版,请先升级到 6.3.0 版,然后再升级到最新版本。然后,您可以启用复制功能。
为升级后的实例授予角色
升级完成后,向项目中的 Managed Service for Apache Spark 服务账号授予 Cloud Data Fusion Runner 角色 (roles/datafusion.runner) 和 Cloud Storage Admin 角色 (roles/storage.admin)。
后续步骤
- 管理 Cloud Data Fusion 实例的补丁修订版本。
- 了解 Cloud Data Fusion 中的版本控制。
- 请参阅可用的版本和补丁修订版本升级。
- 排查升级问题。