가변형 VM은 Managed Service for Apache Spark 클러스터를 만들 때 Managed Service for Apache Spark 마스터, 기본, 보조 작업자 노드의 우선순위가 지정된 VM 유형 목록을 지정할 수 있는 Managed Service for Apache Spark 기능입니다.
가변형 VM을 사용하는 이유
이전에는 클러스터 생성 요청을 제출할 때 VM 유형을 사용할 수 없는 경우 요청이 실패했으며 요청, 스크립트 또는 코드를 업데이트하여 '다음으로 좋은' VM 유형을 지정해야 했습니다. 이 재요청 프로세스는 사용 가능한 VM 유형을 지정할 때까지 여러 번 반복될 수 있습니다.
Managed Service for Apache Spark 가변형 VM 기능은 순위가 지정된 VM 목록에서 마스터, 기본, 보조 작업자 VM 유형을 선택한 다음 나열된 VM 유형을 사용할 수 있는 지정된 클러스터 리전 내에서 영역을 검색하여 클러스터 생성 요청이 성공하도록 도와줍니다.
제한사항
가변형 VM을 사용하는 클러스터는 중지할 수 없습니다.
용어
- VM 유형: VM 인스턴스의 계열, 메모리 용량, CPU 코어 수입니다. Managed Service for Apache Spark에서는 사전 정의된 커스텀 VM 유형을 사용할 수 있습니다.
- 마스터 및 기본 작업자 노드: 클러스터에는 마스터 노드와 2개 이상의 기본 작업자가 있습니다.
- 보조 작업자: 보조 작업자는 선택사항이며 데이터를 저장하지 않습니다. 처리 노드 기능만 수행합니다. 보조 작업자를 사용하면 스토리지를 확장하지 않고도 컴퓨팅을 확장할 수 있습니다. 기본 가변형 VM 보조 작업자 유형은 선점형 유형인 스팟 VM입니다 (Managed Service for Apache Spark 보조 작업자 참고).
사용
- 가변형 VM은 Compute Engine 기반 Managed Service for Apache Spark
2.0.74+,2.1.76+,2.2.42+이상의 이미지 버전에서 사용할 수 있습니다. - 마스터 또는 기본 작업자 가변형 VM으로 클러스터를 만드는 데 시간이 더 오래 걸립니다(약 32초 추가).
- 클러스터 이름은 45자(영문 기준)를 초과할 수 없습니다.
- 모든 VM 유형에 동일한 디스크 유형이 필요합니다.
- 목록에 VM 유형을 최대 10개까지 포함하여 최대 5개의 순위 지정 VM 유형 목록을 지정할 수 있습니다. 자세한 내용은 가변형 VM 요청 방법을 참고하세요.
- 가변형 VM이 있는 클러스터를 만들려면 Managed Service for Apache Spark 자동 영역 배치를 사용해야 하므로 Managed Service for Apache Spark은 VM 유형 요청을 처리할 용량이 있는 영역을 선택할 수 있습니다.
- 클러스터 생성 요청에 자동 확장 정책이 포함된 경우 가변형 VM이 다른 VM 제품군에 속할 수 있지만 메모리 및 코어 수가 동일해야 합니다.
- 가변형 VM을 프로비저닝할 때 Managed Service for Apache Spark는 사용 가능한 예약 중 '일치하는' 예약은 사용하지만 '특정' 예약은 사용하지 않습니다 (예약 인스턴스 사용 참조). 예약과 일치하는 머신 유형이 먼저 순위에서 선택되고 CPU 수가 가장 많은 VM 유형이 선택됩니다.
- Managed Service for Apache Spark는 가변형 VM 프로비저닝에 Google Cloud 할당량을 적용합니다.
- 클러스터의 기본 및 보조 작업자 VM 유형에 서로 다른 CPU 대 메모리 비율을 지정할 수 있지만, 가장 작은 CPU 대 메모리 비율이 가장 작은 컨테이너 단위로 사용되기 때문에 성능이 저하될 수 있습니다.
- 가변형 VM을 사용하여 생성된 클러스터를 업데이트할 경우, Managed Service for Apache Spark는 클러스터를 만들 때 제공된 가변형 VM 목록에서 작업자를 선택하고 추가합니다.
가변형 VM 요청 방법
Google Cloud 콘솔, Google Cloud CLI 또는 Managed Service for Apache Spark API를 사용하여 Managed Service for Apache Spark 클러스터를 만들 때 가변형 VM을 지정할 수 있습니다.
- 목록에 VM 유형을 최대 10개까지 포함하여 최대 5개의 순위 지정 VM 유형 목록을 지정할 수 있습니다. 순위가 가장 낮은 목록은 우선순위가 가장 높습니다. 기본적으로 가변형 VM 목록의 순위는 0입니다. 목록 내에서 Managed Service for Apache Spark는 사용되지 않은 예약이 있는 VM 유형을 우선하고 그 다음으로 가장 큰 VM 크기에 우선순위를 둡니다. 목록 내에서 CPU 수가 동일한 VM 유형은 동일하게 취급됩니다.
콘솔
가변형 VM으로 클러스터를 만들려면 다음 단계를 따르세요.
- Google Cloud 콘솔에서 Managed Service for Apache Spark Compute Engine에서 클러스터 만들기 페이지를 엽니다.
- 클러스터 설정 패널은 기본값으로 채워진 필드로 선택됩니다. 권장 이름과 클러스터 리전을 변경하고 다른 변경사항을 적용할 수 있습니다. Managed Service for Apache Spark 자동 영역 배치가 가변형 VM 목록에 지정된 VM 유형에 가장 적합한 가용성을 제공하는 영역을 선택하도록 클러스터 영역으로 모두를 선택했는지 확인합니다.
노드 구성 패널을 선택합니다. 워커 노드 및 보조 워커 노드 섹션에서 작업자 수를 지정한 후 각 새 순위로 순위가 지정된 머신 유형 추가를 클릭하여 순위에 포함할 머신 유형을 하나 이상 지정합니다.
클러스터 만들기 패널에서 클러스터 세부정보를 확인하고 지정한 후 만들기를 클릭합니다.
gcloud
gcloud dataproc clusters create 명령어를 사용하여 여러 --master-machine-types, --worker-machine-types, --secondary-worker-machine-types 플래그를 추가하여 마스터, 기본, 보조 작업자에 대해 순위가 지정된 가변형 VM 목록을 지정합니다.
다음 예에서는 우선순위가 다음과 같은 마스터, 기본, 보조 VM 유형을 요청합니다.
- 사용 가능한 경우
e2-standard-8VM을 프로비저닝합니다 (0순위).e2-standard-8머신을 사용할 수 없는 경우n2-standard-8VM을 프로비저닝합니다 (1순위).
보조 작업자 유형이 지정되지 않았으므로 선점형 스팟 보조 VM이 프로비저닝됩니다.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --zone="" \ --master-machine-types="type=e2-standard-8,rank=0" \ --master-machine-types="type=n2-standard-8,rank=1" \ --num-workers=10 \ --worker-machine-types="type=e2-standard-8,rank=0" \ --worker-machine-types="type=n2-standard-8,rank=1" \ --num-secondary-workers=4 \ --secondary-worker-machine-types="type=e2-standard-8,rank=0" \ --secondary-worker-machine-types="type=n2-standard-8,rank=1"
참고:
--zone="": 가변형 VM 기능을 사용하려면 Managed Service for Apache Spark가 VM 유형을 사용할 수 있는 영역을 선택할 수 있도록 Managed Service for Apache Spark 자동 영역 배치가 필요합니다. 빈 값('")을--zone플래그로 전달하면 기본gcloud config list에 지정된 영역 선택이 재정의됩니다.
API
Managed Service for Apache Spark API clusters.create 요청의 일부로 instanceFlexibilityPolicy.instanceSelectionList를 사용하여 마스터, 기본, 보조 작업자의 machineTypes 순위 목록을 지정합니다.
예: clusters.create
요청 본문의 다음 JSON 스니펫은 0순위와 1순위의 마스터 (masterConfig), 기본 작업자 (workerConfig), 보조 작업자(secondaryWorkerConfig) 머신 유형을 지정합니다.
{
"projectId": "PROJECT_ID",
"clusterName": "CLUSTER_NAME",
"config": {
"gceClusterConfig": {
"zoneUri": ""
},
"masterConfig": {
"numInstances": 1,
"instanceFlexibilityPolicy": {
"instanceSelectionList": [
{
"machineTypes": ["e2-standard-8"],
"rank": 0
},
{
"machineTypes": ["n2-standard-8"],
"rank": 1
}
]
}
},
"workerConfig": {
"numInstances": 10,
"instanceFlexibilityPolicy": {
"instanceSelectionList": [
{
"machineTypes": ["e2-standard-8"],
"rank": 0
},
{
"machineTypes": ["n2-standard-8"],
"rank": 1
}
]
}
},
"secondaryWorkerConfig": {
"numInstances": 4,
"instanceFlexibilityPolicy": {
"instanceSelectionList": [
{
"machineTypes": ["e2-standard-8"],
"rank": 0
},
{
"machineTypes": ["n2-standard-8"],
"rank": 1
}
]
}
}
}
}
Flex VM 속성 재정의
Managed Service for Apache Spark는 클러스터 수준에서 속성을 설정합니다. 가변형 VM을 사용하는 클러스터를 만들 때 기본 및 보조 작업자 가변형 VM 유형의 시스템 생성 속성을 재정의할 수 있습니다.
gcloud
클러스터를 만들 때 속성을 재정의하려면 다음 구문과 함께 --properties 플래그를 사용하세요.
--properties="$ROLE:$MACHINE_TYPE:$COMPONENT_PREFIX:$COMPONENT_PROPERTY=$VALUE"
- ROLE은
primary_worker또는secondary_worker일 수 있습니다. - 여러 속성은 쉼표로 구분하세요.
다음 gcloud dataproc clusters create 명령어를 실행하여 보조 작업자에서 NodeManager에 YARN이 할당하는 vCPU 수를 재정의합니다. 이 예시에서는 모든 e2-standard-8 및 n2-standard-8 보조 작업자 VM에 대해 yarn-site.xml의 yarn.nodemanager.resource.cpu-vcores 값을 6로 설정합니다.
gcloud dataproc clusters create CLUSTER_NAME \
--num-workers=10 \
--num-secondary-workers=4 \
--worker-machine-types="type=e2-standard-8,rank=0" \
--worker-machine-types="type=n2-standard-8,rank=1" \
--master-machine-types="type=e2-standard-8,rank=0" \
--master-machine-types="type=n2-standard-8,rank=1" \
--secondary-worker-machine-types="type=e2-standard-8,rank=0" \
--secondary-worker-machine-types="type=n2-standard-8,rank=1" \
--region=us-central1 \
--zone="" \
--properties="secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6,secondary_worker:n2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6"
```
API
속성을 재정의하려면 클러스터 생성 요청의 SoftwareConfig 객체에 있는 properties 필드에서 속성을 정의합니다.
속성 키에는 다음 구문을 사용합니다.
ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY
- ROLE은
primary_worker또는secondary_worker일 수 있습니다.
다음 SoftwareConfig 객체는 YARN이 보조 작업자의 NodeManager에 할당하는 vCPU 수를 재정의합니다. 이 예시에서는 모든 e2-standard-8 및 n2-standard-8 보조 작업자 VM에 대해 yarn.nodemanager.resource.cpu-vcores 값을 6으로 설정합니다.
{
"imageVersion":"2.2.42",
"properties": {
"secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores" : "6",
"secondary_worker:n2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores" : "6"
}
}
```
다음 단계
- Managed Service for Apache Spark 클러스터 속성에 대해 자세히 알아보세요.
- Managed Service for Apache Spark 클러스터를 만드는 방법을 알아봅니다.