クラスタの再作成と更新を行う

クラスタの再作成と更新の手順

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}"
    

コンソール

コンソールでは、クラスタ構成をインポートしてクラスタを再作成できません。