重新创建和更新集群

重新创建和更新集群的步骤

您可以使用 gcloud 命令行工具或 Dataproc API 从现有集群复制配置,更新复制的配置 然后使用更新后的配置创建一个新集群。

gcloud CLI

示例说明展示了如何更新集群配置中的映像版本设置。您可以更改该示例,以更新其他集群配置设置。

  1. 设置变量。
    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')
    
  2. 将现有(旧)集群配置导出到 YAML 文件。
    gcloud dataproc clusters export $OLD_CLUSTER \
        --project=$PROJECT \
        --region=$REGION > "${OLD_CLUSTER}-config.yaml"
  3. 更新配置。以下示例使用 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"
  4. 使用新名称和更新后的配置创建新集群。
    gcloud dataproc clusters import $NEW_CLUSTER \
        --project=$PROJECT \
        --region=$REGION \
        --source="${NEW_CLUSTER}-config-updated.yaml"
  5. 在确认您的工作负载在新集群中运行没有任何问题后, 删除现有(旧)集群。重要提示:此步骤会删除您的集群中 HFDS 和本地磁盘中存储的所有数据。
    gcloud dataproc clusters delete $OLD_CLUSTER \
        --project=$PROJECT \
        --region=$REGION

REST API

示例说明展示了如何更新集群名称和映像 版本设置。您可以更改示例变量,以更新不同的集群配置设置。

  1. 设置变量。
    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')
    
    
  2. 将现有(旧)集群配置导出到 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"
  3. 更新配置。以下示例使用 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"
  4. 导入更新后的集群配置,以使用更新后的配置创建新集群。
    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"
  5. 确认工作负载在新集群中运行且没有任何问题后,删除现有(旧)集群。重要提示:此步骤会删除集群中 HDFS 和本地磁盘中存储的所有数据。
    curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${OLD_CLUSTER}"
    

控制台

控制台不支持通过导入的方式重新创建集群 集群配置