Dataproc 부분 클러스터 만들기

특정 시간에 특정 리전에서 사용자가 지정한 VM을 사용할 수 없는 상황(소진)이 미치는 영향을 완화하기 위해 Dataproc에서 클러스터 생성이 허용되는 기본 작업자의 최소 개수를 지정하여 partial cluster 생성을 요청할 수 있습니다.

Standard 클러스터 부분 클러스터
기본 작업자를 하나 이상 만들고 초기화할 수 없으면 클러스터 생성이 실패합니다. 생성된 작업자는 사용자가 삭제할 때까지 계속 실행되고 요금이 청구됩니다. 지정된 최소 작업자 수를 만들 수 있으면 클러스터가 생성됩니다. 실패한 (초기화되지 않은) 작업자는 삭제되고 요금이 청구되지 않습니다. 지정된 최소 작업자 수를 만들고 초기화할 수 없으면 클러스터가 생성되지 않습니다. 생성된 작업자는 디버깅을 위해 삭제되지 않습니다.
클러스터 생성 시간이 최적화됩니다. 모든 노드가 프로비저닝 상태를 보고해야 하므로 클러스터 생성 시간이 길어질 수 있습니다.
단일 노드 클러스터를 만들 수 있습니다. 단일 노드 클러스터를 만들 수 없습니다.

자동 확장

부분 클러스터 생성과 함께 자동 확장을 사용하여 기본 작업자의 목표(전체) 개수가 생성되도록 합니다. 워크로드에 필요한 경우 자동 확장은 백그라운드에서 실패한 작업자를 확보하려고 시도합니다.

다음은 기본 작업자 인스턴스의 총개수가 목표 크기인 10에 도달할 때까지 재시도하는 자동 확장 정책 샘플입니다. 정책의 minInstancesmaxInstances는 클러스터 생성 시에 지정된 기본 작업자의 최소 개수 및 총개수와 일치합니다(부분 클러스터를 만드는 방법 참고). scaleDownFactor를 0으로 설정하면 클러스터가 10에서 8로 축소되지 않고 작업자 수가 최대 작업자 한도인 10개로 유지되는 데 기여합니다.

workerConfig:
  minInstances: 8
  maxInstances: 10
basicAlgorithm:
  cooldownPeriod: 2m
  yarnConfig:
    scaleUpFactor: 1
    scaleDownFactor: 0
    gracefulDecommissionTimeout: 1h

부분 클러스터 만들기

Google Cloud CLI 또는 Dataproc API를 사용하여 Dataproc 부분 클러스터를 만들 수 있습니다.

gcloud

명령줄에서 Dataproc 부분 클러스터를 만들려면 다음 gcloud dataproc clusters create 명령어를 터미널 창에서 로컬로 실행하거나 Cloud Shell에서 실행합니다.

gcloud dataproc clusters create CLUSTER_NAME \
    --project=PROJECT \
    --region=REGION \
    --num-workers=NUM_WORKERS \
    --min-num-workers=MIN_NUM_WORKERS \
    other args ...

다음을 바꿉니다.

  • CLUSTER_NAME: 클러스터 이름. 소문자로 시작해야 하며 이어서 최대 51자의 소문자, 숫자, 하이픈이 와야 하고, 하이픈으로 끝나서는 안 됩니다.
  • PROJECT: 작업 클러스터와 연결된 프로젝트 지정
  • REGION: 작업 클러스터가 위치할 Compute Engine 리전 지정
  • NUM_WORKERS: 클러스터에 가능한 경우 생성할 기본 작업자의 총개수
  • MIN_NUM_WORKERS: 지정된 총 작업자 수(NUM_WORKERS)를 만들 수 없는 경우에 생성할 최소 기본 작업자 수. 이 최소 개수의 기본 작업자를 만들 수 없으면 클러스터 생성이 실패합니다(생성된 작업자는 디버깅을 위해 삭제되지 않음). 이 플래그를 생략하면 총 기본 작업자 수(NUM_WORKERS)로 Standard 클러스터 생성이 시도됩니다.

REST

Dataproc 부분 클러스터를 만들려면 clusters.create 요청의 일부로 workerConfig.minNumInstances 필드에 기본 작업자의 최소 개수를 지정합니다.

프로비저닝된 작업자 수 표시

클러스터를 만든 후 다음 gcloud CLI 명령어를 실행하여 클러스터에 프로비저닝된 보조 작업자를 포함한 작업자 수를 나열할 수 있습니다.

gcloud dataproc clusters list \
    --project=PROJECT \
    --region=REGION \
    --filter=clusterName=CLUSTER_NAME