가변형 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을 사용할 수 없지만 HA 클러스터 작업자 노드는 가변형 VM을 사용할 수 있습니다.
용어
- VM 유형: VM 인스턴스의 계열, 메모리 용량, CPU 코어 수입니다. Managed Service for Apache Spark에서는 사전 정의된 커스텀 VM 유형을 사용할 수 있습니다.
- 마스터 및 기본 작업자 노드: 클러스터에 마스터 노드와 2개 이상의 기본 작업자가 있습니다.
- 보조 작업자: 보조 작업자는 선택사항이며 데이터를 저장하지 않습니다. 처리 노드 기능만 수행합니다. 보조 작업자를 사용하면 스토리지를 확장하지 않고도 컴퓨팅을 확장할 수 있습니다. 기본 가변형 VM 보조 작업자 유형은 선점형 유형인 스팟 VM입니다 (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이 다른 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 목록에서 작업자를 선택하고 추가합니다.
권장사항: Managed Service for Apache Spark 자동 영역 배치를 사용 설정합니다. 이렇게 하면 Managed Service for Apache Spark에서 요청된 VM을 프로비저닝할 수 있는 용량이 있는 영역을 선택할 수 있습니다.
가변형 VM 요청 방법
Google Cloud 콘솔, Google Cloud CLI 또는 Dataproc API를 사용하여 Apache Spark용 관리 서비스 클러스터를 만들 때 가변형 VM을 지정할 수 있습니다.
- 목록에 VM 유형을 최대 10개까지 포함하여 최대 5개의 순위 지정 VM 유형 목록을 지정할 수 있습니다. 순위가 가장 낮은 목록은 우선순위가 가장 높습니다. 기본적으로 가변형 VM 목록의 순위는 0입니다. 목록 내에서 Managed Service for Apache Spark는 사용되지 않은 예약이 있는 VM 유형을 우선하고 그 다음으로 가장 큰 VM 크기에 우선순위를 둡니다. 목록 내에서 CPU 수가 동일한 VM 유형은 동일하게 취급됩니다.
콘솔
가변형 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="": 이 플래그를 빈 값으로 설정하면 자동 영역 배치가 사용 설정되어 Managed Service for Apache Spark가 요청된 VM 유형을 사용할 수 있는 영역을 선택할 수 있습니다. 이 플래그 값은 기본gcloud config list에 지정된 영역 선택을 재정의합니다.
API
Dataproc 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을 사용하는 클러스터를 만들 때 기본 및 보조 작업자 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 객체는 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 클러스터를 만드는 방법을 알아봅니다.