重新建立及更新 Dataproc 叢集

重新建立及更新叢集

您可以使用 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. 確認工作負載在新叢集中運作無誤後,請刪除現有 (舊) 叢集。重要事項:這個步驟會刪除叢集中 HDFS 和本機磁碟上儲存的所有資料。
    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}"
    

控制台

主控台不支援透過匯入叢集設定來重新建立叢集。