クラスタの再作成と更新の手順
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"
- 新しいクラスタでワークロードが問題なく実行されていることを確認したら、既存の(古い)クラスタを削除します。重要: この手順により、クラスタの HDFS とローカル ディスクに保存されたデータはすべて削除されます。
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}"
コンソール
コンソールでは、クラスタ構成をインポートしてクラスタを再作成できません。