您可以复制现有 Dataproc on GKE 虚拟集群的配置,更新复制的配置,然后使用更新后的配置创建新的 Dataproc on GKE 集群。
重新创建和更新 Dataproc on GKE 集群的步骤
gcloud
1. 设置环境变量:
CLUSTER=existing Dataproc on GKE cluster name \ REGION=region
将现有的 Dataproc on GKE 集群配置导出到 YAML 文件。
gcloud dataproc clusters export $CLUSTER \ --region=$REGION > "${CLUSTER}-config.yaml"
更新配置。
移除
kubernetesNamespace
字段。移除此字段是必要的,以免在创建更新后的集群时发生命名空间冲突。用于移除
kubernetesNamespace
字段的sed
命令示例:sed -E "s/kubernetesNamespace: .+$//g" ${CLUSTER}-config.yaml
进行其他更改以更新 Dataproc on GKE 虚拟集群配置设置,例如更改 Spark componentVersion。
如果您要创建的集群的名称与要更新的集群的名称相同(如果您要替换原始集群),请删除现有的 Dataproc on GKE 虚拟集群。
等待先前的删除操作完成,然后导入更新后的集群配置,以使用更新后的配置设置创建新的 Dataproc on GKE 虚拟集群。
gcloud dataproc clusters import $CLUSTER \ --region=$REGION \ --source="${CLUSTER}-config.yaml"
API
1. 设置环境变量:
CLUSTER=existing Dataproc on GKE cluster name \ REGION=region
将现有的 Dataproc on GKE 集群配置导出到 YAML 文件。
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${CLUSTER}?alt=json" > "${CLUSTER}-config.json"
移除
kubernetesNamespace
字段。移除此字段是必要的,以免在创建更新后的集群时发生命名空间冲突。用于移除
kubernetesNamespace
字段的jq
命令示例:jq 'del(.virtualClusterConfig.kubernetesClusterConfig.kubernetesNamespace)'
- 进行其他更改以更新 Dataproc on GKE 虚拟集群配置设置,例如更改 Spark componentVersion。
如果您要创建的集群的名称与要更新的集群的名称相同(如果您要替换原始集群),请删除现有的 Dataproc on GKE 虚拟集群。
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${CLUSTER}"
等待先前的删除操作完成,然后导入更新后的集群配置,以使用更新后的设置创建新的 Dataproc on GKE 虚拟集群。
curl -i -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json; charset=utf-8" -d "@${CLUSTER}-config.json" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters?alt=json"
控制台
Google Cloud 控制台不支持通过导入现有集群的配置来重新创建 Dataproc on GKE 虚拟集群。