클러스터 확장

Dataproc 클러스터를 만든 후 클러스터의 기본 또는 보조 작업자 노드 수를 늘리거나 줄여 클러스터를 조정('확장')할 수 있습니다. Dataproc 클러스터의 크기는 작업이 클러스터에서 실행 중인 경우에도 언제든지 확장할 수 있습니다.

Dataproc 클러스터 크기를 확장하는 이유

  1. 작업자 수를 늘려 작업을 더 빠르게 실행하기 위해
  2. 작업자 수를 줄여 비용을 절감하기 위해(진행 중인 작업이 손실되지 않도록 하기 위해 클러스터 크기를 축소할 때 사용할 옵션으로 단계적 해제 참조)
  3. 노드 수를 늘려 사용 가능한 Hadoop 분산 파일 시스템(HDFS) 저장소를 확장하기 위해

클러스터 크기는 두 번 이상 확장할 수 있으므로 한 번에 클러스터 크기를 늘리거나 줄인 다음 나중에 크기를 줄이거나 늘릴 수 있습니다.

확장 사용

다음 세 가지 방법으로 Dataproc 클러스터를 확장할 수 있습니다.

  1. Cloud SDK에서 gcloud 명령줄 도구 사용
  2. Google Cloud Console에서 클러스터 구성 수정
  3. REST API 사용

클러스터에 추가된 새로운 작업자는 기존 작업자와 동일한 머신 유형을 사용합니다. 예를 들어 클러스터가 n1-standard-8 머신 유형을 사용하는 작업자로 만들어진 경우, 새로운 작업자도 n1-standard-8 머신 유형을 사용합니다.

기본 작업자의 수나 보조(선점형) 작업자의 수 또는 둘 모두를 확장할 수 있습니다. 예를 들어 선점형 작업자의 수만 확장하는 경우. 기본 작업자의 수는 그대로 유지됩니다.

gcloud

gcloud dataproc clusters update로 클러스터를 확장하려면 다음 명령어를 실행합니다.
gcloud dataproc clusters update cluster-name \
    --region=region \
    [--num-workers and/or --num-secondary-workers]=new-number-of-workers
여기서 cluster-name은 업데이트할 클러스터의 이름이고 new-number-of-workers는 업데이트된 기본 및/또는 보조 워커 노드의 수입니다. 예를 들어 5개의 기본 작업자 노드를 사용하도록 'dataproc-1'이라는 클러스터를 확장하려면 다음 명령을 실행합니다.
gcloud dataproc clusters update dataproc-1 \
    --region=region \
    --num-workers=5
...
Waiting on operation [operations/projects/project-id/operations/...].
Waiting for cluster update operation...done.
Updated [https://dataproc.googleapis.com/...].
clusterName: my-test-cluster
...
  masterDiskConfiguration:
    bootDiskSizeGb: 500
  masterName: dataproc-1-m
  numWorkers: 5
  ...
  workers:
  - my-test-cluster-w-0
  - my-test-cluster-w-1
  - my-test-cluster-w-2
  - my-test-cluster-w-3
  - my-test-cluster-w-4
...

REST API

clusters.patch를 참조하세요.

PATCH /v1/projects/project-id/regions/us-central1/clusters/example-cluster?updateMask=config.worker_config.num_instances,config.secondary_worker_config.num_instances
{
  "config": {
    "workerConfig": {
      "numInstances": 4
    },
    "secondaryWorkerConfig": {
      "numInstances": 2
    }
  },
  "labels": null
}

콘솔

클러스터를 만든 후에 Cloud Console 클러스터 페이지에서 해당 클러스터의 클러스터 세부정보 페이지를 연 후 구성 탭에서 수정 버튼을 클릭하여 클러스터를 확장할 수 있습니다.
워커 노드 또는 선점형 워커 노드의 수에 새 값을 입력합니다(다음 스크린샷에서 각각 '5' 및 '2'로 업데이트됨).
저장을 클릭하여 클러스터를 업데이트합니다.

단계적 해제

클러스터를 축소하면 진행 중인 작업이 완료되기 전에 종료될 수 있습니다. Dataproc v 1.2 이상을 사용할 경우 단계적 해제를 사용할 수 있습니다. 이 방식은 YARN 노드의 단계적 해제를 통해 작업자에서 진행 중인 작업이 Cloud Dataproc 클러스터에서 삭제되기 전에 완료될 수 있도록 합니다.

단계적 해제 및 보조 작업자

선점형(보조) 작업자 그룹은 클러스터 확장 작업이 완료로 표시된 후에도 예상 크기에 도달하기 위해 계속해서 작업자를 프로비저닝하거나 삭제합니다. 보조 작업자의 단계적 해제를 시도하는 경우 다음과 유사한 오류 메시지가 표시될 수 있습니다.

'보조 작업자 그룹은 Dataproc 외부에서 수정할 수 없습니다. 최근에 이 클러스터를 만들었거나 업데이트한 경우, 모든 보조 인스턴스를 클러스터에 더하거나 삭제할 때까지 몇 분 기다린 후 단계적 해제를 시도해 주세요. 예상되는 보조 작업자 그룹 크기는 x이고 실제 크기는 y입니다.'

잠시 기다린 후 단계적 해제 요청을 반복합니다

또한 다음을 참고하세요

  • 언제든지 선점형 작업자를 강제로 해제할 수 있습니다.
  • 언제든지 기본 작업자를 단계적으로 해제할 수 있습니다.

단계적 해제 사용

Dataproc 단계적 해제는 Cloud Dataproc 클러스터에서 삭제하기 전에 작업자에서 진행 중인 작업을 완료하기 위해 YARN 노드의 단계적 해제를 포함합니다. 기본적으로 단계적 해제는 중지되어 있습니다. 이 기능은 클러스터에서 하나 이상의 작업자를 삭제하기 위해 클러스터를 업데이트할 때 시간 제한 값을 설정하여 사용 설정할 수 있습니다.

gcloud

작업자를 1개 이상 삭제하기 위해 클러스터를 업데이트할 때 gcloud dataproc clusters update 명령어를 --graceful-decommission-timeout 플래그와 함께 사용합니다. 시간 제한(문자열) 값은 '0s'(기본값, 단계적이지 않은 강제적 해제) 또는 현재 시간에 상대적인 양의 기간(예: '3s')일 수 있습니다. 최대 기간은 1일입니다.
gcloud dataproc clusters update cluster-name \
    --region=region \
    --graceful-decommission-timeout="timeout-value" \
    [--num-workers and/or --num-secondary-workers]=decreased-number-of-workers \
    ... other args ...

REST API

clusters.patch.gracefulDecommissionTimeout을 참조하세요. 시간 제한(문자열) 값은 '0'(기본값, 단계적이지 않은 강제적 해제) 또는 초 단위 기간(예: '3s')일 수 있습니다. 최대 기간은 1일입니다.

콘솔

클러스터를 만든 후에 Cloud Console 클러스터 페이지에서 해당 클러스터의 클러스터 세부정보 페이지를 연 후 구성 탭에서 수정 버튼을 클릭하여 클러스터의 단계적 해제를 선택할 수 있습니다.
단계적 해제 섹션에서 '단계적 해제 사용' 체크박스를 선택한 다음 제한 시간 값을 선택합니다.
저장을 클릭하여 클러스터를 업데이트합니다.