클러스터를 다시 만들고 업데이트하는 단계
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}"
Console
콘솔에서는 클러스터 구성을 가져와서 클러스터를 다시 만들 수 없습니다.