특정 시간에 특정 리전에서 사용자가 지정한 VM을 사용할 수 없는 상황(소진)의 영향을 완화하기 위해 Dataproc에서 클러스터 생성이 허용되는 기본 작업자의 최소 개수를 지정하여 partial cluster
생성을 요청할 수 있습니다.
표준 클러스터 | 부분 클러스터 |
---|---|
기본 작업자를 하나 이상 만들고 초기화할 수 없으면 클러스터 생성이 실패합니다. 생성된 작업자는 사용자가 삭제할 때까지 계속 실행되고 요금이 청구됩니다. | 지정된 최소 작업자 수를 만들 수 있으면 클러스터가 생성됩니다. 실패한(초기화되지 않은) 작업자는 삭제되고 요금이 청구되지 않습니다. 지정된 최소 작업자 수를 만들고 초기화할 수 없으면 클러스터가 생성되지 않습니다. 생성된 작업자는 디버깅을 위해 삭제되지 않습니다. |
클러스터 생성 시간이 최적화됩니다. | 모든 노드가 프로비저닝 상태를 보고해야 하므로 클러스터 생성 시간이 길어질 수 있습니다. |
단일 노드 클러스터를 만들 수 있습니다. | 단일 노드 클러스터를 만들 수 없습니다. |
자동 확장:
부분 클러스터 생성과 함께 자동 확장을 사용하여 기본 작업자의 목표(전체) 개수가 생성되도록 합니다. 워크로드에 필요한 경우 자동 확장은 백그라운드에서 실패한 작업자를 확보하려고 시도합니다.
다음은 기본 작업자 인스턴스의 총 개수가 목표 크기인 10에 도달할 때까지 재시도하는 자동 확장 정책 샘플입니다.
정책의 minInstances
및 maxInstances
는 클러스터 생성 시에 지정된 기본 작업자의 최소 개수 및 총 개수와 일치합니다(부분 클러스터를 만드는 방법 참조).
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