클러스터 다시 만들기 및 업데이트

클러스터를 다시 만들고 업데이트하는 단계

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

Console

콘솔에서는 클러스터 구성을 가져와서 클러스터를 다시 만들 수 없습니다.