가변형 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+및 이후 이미지 버전에서 사용할 수 있습니다. - 마스터 또는 기본 작업자 Flex 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은 Google Cloud 할당량을 가변형 VM 프로비저닝에 적용합니다.
- 클러스터의 기본 및 보조 작업자 V 유형에 서로 다른 CPU 대 메모리 비율을 지정할 수 있지만, 가장 작은 CPU 대 메모리 비율이 가장 작은 컨테이너 단위로 사용되기 때문에 성능이 저하될 수 있습니다.
- 가변형 VM을 사용하여 생성된 클러스터를 업데이트할 경우, Managed Service for Apache Spark은 클러스터를 만들 때 제공된 가변형 VM 목록에서 작업자를 선택하고 추가합니다.
가변형 VM 요청 방법
콘솔, Google Cloud CLI 또는 Managed Service for Apache Spark API 를 사용하여 Google Cloud Managed Service for Apache Spark 클러스터를 만들 때 가변형 VM을 지정할 수 있습니다.
- 목록에 VM 유형을 최대 10개까지 포함하여 최대 5개의 순위 지정 VM 유형 목록을 지정할 수 있습니다. 순위가 가장 낮은 목록은 우선순위가 가장 높습니다. 기본적으로 가변형 VM 목록의 순위는 0입니다. 목록 내에서 Managed Service for Apache Spark은 사용되지 않은 예약이 있는 VM 유형을 우선하고 그 다음으로 가장 큰 VM 크기에 우선순위를 둡니다. 목록 내에서 CPU 수가 동일한 VM 유형은 동일하게 취급됩니다.
콘솔
보조 작업자 가변형 VM으로 클러스터를 만들려면 다음 안내를 따르세요.
- 콘솔에서 Managed Service for Apache Spark Compute Engine의 클러스터 만들기 페이지를 엽니다. Google Cloud
- 클러스터 설정 패널은 기본값으로 채워진 필드로 선택됩니다. 권장 이름과 클러스터 리전을 변경하고 다른 변경사항을 적용할 수 있습니다. 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 자동 영역 배치 가 Managed Service for Apache Spark이 사용 가능한 VM 유형이 있는 영역을 선택할 수 있도록 해야 합니다. 빈 값('")을--zone플래그로 전달하면 기본gcloud config list에 지정된 영역 선택이 재정의됩니다.
API
instanceFlexibilityPolicy.instanceSelectionList
를 Managed Service for Apache Spark API
clusters.create
요청의 일부로 사용하여 마스터, 기본, 보조 작업자의
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을 사용하는 클러스터를 만들 때 기본 및 보조 작업자 Flex 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 객체는 보조 작업자의 NodeManager에 YARN이 할당하는 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 클러스터를 만드는 방법을 알아보세요.