Dataproc 클러스터 확장

Dataproc 클러스터를 만든 후 클러스터에서 기본 또는 보조 작업자 노드(수평 확장)의 수를 늘리거나 줄여 클러스터를 조정('확장')할 수 있습니다. Dataproc 클러스터의 크기는 작업이 클러스터에서 실행 중인 경우에도 언제든지 확장할 수 있습니다. 기존 클러스터의 머신 유형은 변경할 수 없습니다(수직 확장). 수직으로 확장하려면 지원되는 머신 유형을 사용하여 클러스터를 만든 다음 작업을 새 클러스터로 마이그레이션합니다.

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

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

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

확장 사용

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

  1. gcloud CLI에서 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
}

콘솔

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

Dataproc이 삭제할 클러스터 노드를 선택하는 방법

이미지 버전 1.5.83+, 2.0.57+, 2.1.5+으로 생성된 클러스터를 축소할 때 Dataproc은 먼저 비활성, 비정상, 유휴 노드를 제거한 후 YARN 애플리케이션 마스터 및 컨테이너를 가장 적게 실행 중인 노드를 삭제하여 YARN 애플리케이션을 실행할 때 노드 삭제가 미치는 영향을 최소화하려고 시도합니다.

단계적 해제

클러스터를 축소하면 진행 중인 작업이 완료되기 전에 종료될 수 있습니다. 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일입니다.

콘솔

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

단계적 해제 축소 작업을 취소하는 방법

이미지 버전 2.0.57+, 2.1.5+으로 생성된 Dataproc 클러스터에서 원하는 경우 gcloud dataproc operations cancel 명령어 또는 Dataproc API operations.cancel 요청을 실행하여 단계적 해제 축소 작업 취소를 요청합니다.

단계적 해제 축소 작업을 취소하면 다음과 같이 진행됩니다.

  • DECOMMISSIONING 상태의 작업자는 다시 지정되고 작업 취소가 완료되면 ACTIVE가 됩니다.

  • 축소 작업에 라벨 업데이트가 포함된 경우 업데이트가 적용되지 않을 수 있습니다.

취소 요청의 상태를 확인하려면 gcloud dataproc operations describe 명령어 또는 Dataproc API operations.get 요청을 실행하세요. 취소 작업이 성공하면 내부 작업 상태가 취소됨으로 표시됩니다.