이 문서에서는 고가용성 (HO) 모드에서 Managed Service for Apache Spark 클러스터를 만드는 방법을 설명합니다. 높은 획득 가능성 모드는 클러스터를 만들 때 고정된 머신 유형을 요구하는 대신 Managed Service for Apache Spark가 호환되는 머신 유형 중에서 선택할 수 있도록 허용하여 수요가 많거나 리소스 제약이 있는 기간에 클러스터 VM을 성공적으로 프로비저닝할 가능성을 높입니다.
높은 획득 가능성 모드를 사용하여 범용 컴퓨팅 요구사항이 있는 클러스터를 만들어 VM을 사용할 수 없어 클러스터 생성 및 확장 실패를 방지합니다.
높은 획득 가능성 모드 작동 방식
표준 클러스터 생성 요청에서는 클러스터 노드에 특정 머신 유형 (예: n2-standard-4)을 지정합니다. 영역에서 특정 머신 유형을 사용할 수 없는 경우 생성 요청이 실패합니다.
높은 가용성 모드에서는 고정된 머신 유형 대신 마스터, 기본 워커, 보조 워커 노드에 대한 가변형 리소스 요구사항을 지정합니다.
- vCPU 코어 수: VM 인스턴스당 vCPU의 목표 수(2, 4, 8, 16 또는 32개 코어)를 요청합니다.
하드웨어 클래스: 성능 및 메모리 프로필을 지정합니다.
STANDARD: vCPU당 약 4GB의 메모리와 표준 영구 스토리지 등급으로 균형 잡힌 구성을 제공합니다. 현재 후보 머신 유형에는n4-standard,n4d-standard,n2-standard,n2d-standard(0순위 환경설정),c4-standard,c4d-standard(1순위 환경설정)가 포함됩니다.PERFORMANCE: vCPU당 약 8GB의 메모리와 상위 등급 디스크 구성 (더 높은 IOPS 및 처리량)을 갖춘 고성능 구성을 제공합니다. 현재 후보 머신 유형에는n4-highmem,n4d-highmem,n2-highmem,n2d-highmem(순위 0 환경설정),c4-highmem,c4d-highmem(순위 1 환경설정)가 포함됩니다.
인스턴스 수: 각 그룹의 인스턴스 수를 지정합니다.
- 마스터: 인스턴스 1개여야 합니다.
- 기본 워커: 양의 정수
- 보조 작업자: 음수가 아닌 정수입니다.
부팅 디스크 크기: 선택적 부팅 디스크 크기 (예: 100GB)입니다.
Managed Service for Apache Spark는 자동 영역 배치를 자동으로 사용하여 클러스터 리전 전반의 영역을 평가하고 요청된 하드웨어 클래스 내에서 사용 가능한 용량이 있는 후보 머신 유형을 선택합니다.
요구사항 및 제한사항
높은 획득 가능성 모드에는 다음과 같은 요구사항 및 제한사항이 있습니다.
- 리소스 할당량: 프로젝트에는 선택한 하드웨어 클래스 (
N4,N4D,N2,N2D,C4,C4D)의 모든 후보 머신 계열에 대해 클러스터 리전에 충분한 Compute Engine 리소스 할당량이 있어야 합니다. 기본 후보 머신 유형은 Google에서 제어하며 언제든지 변경될 수 있으므로 특정 머신 유형에 종속되지 마세요. - 영역 사양: 명시적인
--zone(또는zoneUri)을 지정할 수 없습니다. Managed Service for Apache Spark는 자동 영역 배치를 사용하여 리전에서 사용 가능한 영역을 자동으로 선택합니다. - 고정 머신 및 노드 구성과의 상호 배타성:
- 유연한 구성 (
--master-flexible-config,--worker-flexible-config또는--secondary-worker-flexible-config)으로 마스터, 기본 워커 또는 보조 워커 노드 그룹을 구성할 때는 해당 노드 그룹에 대해 표준 머신 유형, 인스턴스 선택, 인스턴스 수, 디스크 또는 가속기 플래그를 지정할 수 없습니다.- 마스터:
--master-machine-type,--master-machine-types,--master-instance-selection,--master-instance-flexibility-policy-file,--master-boot-disk-size,--master-boot-disk-type,--num-master-local-ssds,--master-accelerator또는--master-min-cpu-platform와 결합할 수 없습니다. - 기본 워커:
--num-workers,--worker-machine-type,--worker-machine-types,--worker-instance-selection,--worker-instance-flexibility-policy-file,--worker-boot-disk-size,--worker-boot-disk-type,--num-worker-local-ssds,--worker-accelerator또는--worker-min-cpu-platform와 결합할 수 없습니다. - 보조 작업자:
--num-secondary-workers,--secondary-worker-type,--secondary-worker-machine-types,--secondary-worker-instance-selection,--secondary-worker-instance-flexibility-policy-file,--secondary-worker-boot-disk-size,--secondary-worker-boot-disk-type,--num-secondary-worker-local-ssds또는--secondary-worker-accelerator와 결합할 수 없습니다.
- 마스터:
- 멀티 노드 클러스터에서 마스터 노드 그룹에 고가용성 모드가 사용 설정된 경우 기본 워커 노드 그룹도 가변형 구성 (
--worker-flexible-config)을 사용해야 합니다. - 보조 작업자가 고가용성 클러스터에서 사용되는 경우 표준 보조 작업자 플래그가 아닌
--secondary-worker-flexible-config를 사용해야 합니다.
- 유연한 구성 (
- 단일 노드 클러스터: 단일 노드 클러스터(
--single-node또는--cluster-type=single-node)에서는--master-flexible-config만 지정할 수 있습니다. 기본 및 보조 작업자 가변형 구성 플래그는 지원되지 않습니다. - 클러스터 업데이트:
gcloud dataproc clusters update를 사용하여 기본 및 보조 작업자의 인스턴스 수(num-instances)를 업데이트할 수 있습니다. 코어 수, 하드웨어 클래스, 부팅 디스크 크기는 생성 시 사양이며 생성 후에는 수정할 수 없습니다. - 고가용성 클러스터: 고가용성 (HA) 클러스터 (마스터 노드가 3개인 클러스터)는 고가용성 모드에서 지원되지 않습니다. 마스터 인스턴스 수는 1개여야 합니다.
고가용성 클러스터 만들기
Google Cloud CLI 또는 Dataproc API를 사용하여 고가용성 모드로 클러스터를 만들 수 있습니다.
gcloud
고가용성 모드에서 클러스터를 만들려면 --master-flexible-config 및 --worker-flexible-config 플래그와 함께 gcloud dataproc clusters create 명령어를 실행합니다.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=1,boot-disk-size=BOOT_DISK_SIZE" \
--worker-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=NUM_WORKERS,boot-disk-size=BOOT_DISK_SIZE"
다음을 바꿉니다.
CLUSTER_NAME: 클러스터의 이름입니다.REGION: 클러스터의 Compute Engine 리전입니다(예:us-central1).--zone를 지정하지 마세요.CORES: VM 인스턴스당 vCPU 수입니다. 2의 거듭제곱 (2,4,8,16,32)이어야 합니다.HARDWARE_CLASS: 하드웨어 프로필 클래스(STANDARD또는PERFORMANCE).NUM_WORKERS: 클러스터의 기본 워커 노드 수입니다.BOOT_DISK_SIZE: 부팅 디스크의 크기(예:100GB)
보조 작업자 추가
높은 가용성 모드에서 보조 워커 노드를 추가하려면 --secondary-worker-flexible-config 플래그를 포함합니다.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=4,hardware-class=STANDARD,num-instances=1,boot-disk-size=100GB" \
--worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB" \
--secondary-worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB"
단일 노드 클러스터 만들기
단일 노드 고가용성 클러스터를 만들려면 --master-flexible-config과 함께 --single-node (또는 --cluster-type=single-node)를 지정하고 작업자 가변 구성 플래그를 생략합니다.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--single-node \
--master-flexible-config="cores=4,hardware-class=STANDARD,boot-disk-size=100GB"
클러스터 작업자 용량 업데이트
기존 고가용성 클러스터에서 기본 또는 보조 작업자 수를 확장하려면 gcloud dataproc clusters update 명령어를 사용합니다.
gcloud dataproc clusters update CLUSTER_NAME \
--region=REGION \
--worker-flexible-config="num-instances=NEW_NUM_WORKERS"
REST
REST API를 사용하여 고가용성 클러스터를 만들려면 clusters.create 요청을 전송합니다. ClusterConfig 객체에서 다음을 수행합니다.
- 자동 영역 배치를 사용 설정하려면
gceClusterConfig.zoneUri를 비워두거나 생략합니다. masterFlexibleConfig및workerFlexibleConfig객체를 지정합니다.
HTTP 메서드 및 URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters
JSON 요청 본문:
{
"projectId": "PROJECT_ID",
"clusterName": "CLUSTER_NAME",
"config": {
"gceClusterConfig": {
"zoneUri": ""
},
"masterFlexibleConfig": {
"numInstances": 1,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
},
"workerFlexibleConfig": {
"numInstances": 2,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
}
}
}
다음을 바꿉니다.
PROJECT_ID: Google Cloud 프로젝트 ID입니다.REGION: 클러스터가 생성될 Compute Engine 리전(예:us-central1)입니다.CLUSTER_NAME: 클러스터의 이름입니다.
선택사항: 보조 작업자를 추가하려면 원하는 numInstances, coreCount, hardwareClass, bootDiskSizeGb과 함께 secondaryWorkerFlexibleConfig 객체를 포함합니다.
다음 단계
- 자동 영역 배치에 대해 자세히 알아보세요.
- 가변형 VM으로 VM 유형 우선순위 지정 알아보기
- Managed Service for Apache Spark 클러스터를 확장하는 방법 알아보기