重新创建和更新集群的步骤
您可以使用 gcloud
命令行工具或 Dataproc API
从现有集群复制配置,更新复制的配置
然后使用更新后的配置创建一个新集群。
gcloud CLI
示例说明展示了如何更新集群配置中的映像版本设置。您可以更改该示例,以更新其他集群配置设置。
- 设置变量。
export PROJECT=project-id export REGION=region export OLD_CLUSTER=old-cluster-name export NEW_CLUSTER=new-cluster-name export NEW_IMAGE_VERSION=image-version (for example, '2.2-debian12')
- 将现有(旧)集群配置导出到 YAML 文件。
gcloud dataproc clusters export $OLD_CLUSTER \ --project=$PROJECT \ --region=$REGION > "${OLD_CLUSTER}-config.yaml"
- 更新配置。以下示例使用
sed
更新映像版本。sed -E "s|(^[[:blank:]]+)imageVersion: .+|\1imageVersion: ${NEW_IMAGE_VERSION}|g" "${OLD_CLUSTER}-config.yaml" | sed -E '/^[[:blank:]]+imageUri: /d' > "${NEW_CLUSTER}-config-updated.yaml"
- 使用新名称和更新后的配置创建新集群。
gcloud dataproc clusters import $NEW_CLUSTER \ --project=$PROJECT \ --region=$REGION \ --source="${NEW_CLUSTER}-config-updated.yaml"
- 在确认您的工作负载在新集群中运行没有任何问题后,
删除现有(旧)集群。重要提示:此步骤会删除您的集群中 HFDS 和本地磁盘中存储的所有数据。
gcloud dataproc clusters delete $OLD_CLUSTER \ --project=$PROJECT \ --region=$REGION
REST API
示例说明展示了如何更新集群名称和映像 版本设置。您可以更改示例变量,以更新不同的集群配置设置。
- 设置变量。
export PROJECT=project-id export REGION=region export OLD_CLUSTER=old-cluster-name export NEW_CLUSTER=new-cluster-name export NEW_IMAGE_VERSION=image-version (for example, '2.2-debian12')
- 将现有(旧)集群配置导出到 JSON 文件。
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${OLD_CLUSTER}?alt=json" > "${OLD_CLUSTER}-config.json"
- 更新配置。以下示例使用
jq
更新集群名称和映像版本。jq ".clusterName = \"${NEW_CLUSTER}\" | .config.softwareConfig.imageVersion=\"${NEW_IMAGE_VERSION}\" | del(.config.workerConfig.imageUri) | del(.config.masterConfig.imageUri)" "${OLD_CLUSTER}-config.json" > "${NEW_CLUSTER}-config-updated.json"
- 导入更新后的集群配置,以使用更新后的配置创建新集群。
curl -i -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json; charset=utf-8" -d "@${NEW_CLUSTER}-config-updated.json" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters?alt=json"
- 确认工作负载在新集群中运行且没有任何问题后,删除现有(旧)集群。重要提示:此步骤会删除集群中 HDFS 和本地磁盘中存储的所有数据。
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${OLD_CLUSTER}"
控制台
控制台不支持通过导入的方式重新创建集群 集群配置