부분 클러스터 만들기

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

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

자동 확장:

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

다음은 기본 작업자 인스턴스의 총 개수가 목표 크기인 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)로 표준 클러스터 생성이 시도됩니다.

REST

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

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

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

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