지원되는 머신 유형

Dataproc 클러스터는 Compute Engine 인스턴스에 빌드됩니다. 머신 유형은 인스턴스에 사용할 수 있는 가상화된 하드웨어 리소스를 정의합니다. Compute Engine은 사전 정의된 머신 유형커스텀 머신 유형을 모두 제공합니다. Dataproc 클러스터는 마스터 노드나 워커 노드에 사전 정의된 유형과 커스텀 유형을 모두 사용할 수 있습니다.

Dataproc 클러스터는 다음과 같은 Compute Engine 사전 정의된 머신 유형을 지원합니다 (머신 유형 가용성은 리전마다 다름).

  • 범용 머신 유형: N1, N2, N2D, E2, C3, C4, N4 머신 유형이 포함됩니다 (Dataproc은 N1, N2, N2D, E2, C3, C4, N4 커스텀 머신 유형도 지원합니다).

    제한사항:

    • 2.0 이상 이미지에는 n1-standard-1 머신 유형이 지원되지 않습니다(2.0 이전 버전에서는 n1-standard-1 머신 유형이 권장되지 않습니다. 대신 메모리가 더 많은 머신 유형을 사용하세요).
    • 공유 코어 머신 유형은 지원되지 않습니다. 여기에는 다음과 같은 지원되지 않는 머신 유형이 포함됩니다.
      • E2: e2-micro, e2-small, e2-medium 공유 코어 머신 유형
      • N1: f1-micro 및 g1-small 공유 코어 머신 유형
    • 머신 유형이 C3, C4 또는 N4인 경우 Dataproc는 부팅 디스크 유형으로 hyperdisk-balanced를 선택합니다.
  • C2C2D 머신 유형이 포함된 컴퓨팅 최적화 머신 유형
  • M1 및 M2 머신 유형이 포함된 메모리 최적화 머신 유형
  • C4A 머신 유형을 포함한 ARM 머신 유형

커스텀 머신 유형

Dataproc은 N1 시리즈 커스텀 머신 유형을 지원합니다.

커스텀 머신 유형은 다음과 같은 워크로드에 적합합니다.

  • 사전 정의된 머신 유형에 적합하지 않은 워크로드
  • 추가 처리 능력이나 메모리가 필요하지만 다음 머신 유형 수준에서 제공되는 모든 업그레이드는 필요하지 않은 작업 부하

워크로드에 n1-standard-4 인스턴스에서 제공한 것보다 더 많은 처리 능력이 필요하지만 다음 단계인 n1-standard-8 인스턴스의 용량은 너무 과하다고 가정해 보겠습니다. 커스텀 머신 유형을 사용하면 가상 CPU 6개와 메모리 25GB로 중간 범위에 마스터 노드 또는 워커 노드가 있는 Dataproc 클러스터를 만들 수 있습니다.

맞춤 머신 유형 지정

커스텀 머신 유형은 특수 machine type 사양을 사용하며 제한 사항이 적용됩니다. 예를 들어 가상 CPU 6개와 메모리 22.5GB를 사용하는 커스텀 VM의 커스텀 머신 유형 사양은 custom-6-23040입니다.

머신 유형 상의 숫자는 머신의 가상 CPU(vCPU) 수(6)와 메모리 양(23040)에 해당됩니다. 메모리 양은 메모리 양을 1024로 곱하여 계산됩니다(GB 단위). GB 또는 MB 단위의 메모리 표현을 참조하세요. 이 예시에서는 22.5(GB)에 1024를 곱합니다(22.5 * 1024 = 23040).

위 구문을 사용하여 클러스터와 커스텀 머신 유형을 지정합니다. 클러스터를 만들 때 마스터 노드 또는 워커 노드의 머신 유형을 설정할 수 있습니다. 두 노드를 모두 설정하는 경우 마스터 노드는 작업자가 사용하는 커스텀 머신 유형이 아닌 다른 커스텀 머신 유형을 사용할 수 있습니다. 보조 작업자에 사용되는 머신 유형은 기본 작업자의 설정을 따르며 별도로 설정할 수 없습니다(보조 작업자 - 선점형 및 비선점형 VM 참조).

커스텀 머신 유형 가격

커스텀 머신 유형 가격은 커스텀 머신에 사용된 리소스를 기준으로 합니다. Dataproc 가격은 컴퓨팅 리소스 비용에 추가되고 클러스터에 사용된 총 가상 CPU(vCPU) 수에 따라 결정됩니다.

지정된 머신 유형으로 Dataproc 클러스터 만들기

콘솔

Google Cloud 콘솔에서 Dataproc 클러스터 만들기 페이지의 노드 구성 패널에서 클러스터 마스터 노드와 워커 노드의 머신 계열, 시리즈, 유형을 선택합니다.

gcloud 명령어

gcloud dataproc clusters create 명령어를 다음 플래그와 함께 실행하여 마스터 머신 유형이나 워커 머신 유형을 사용해 Dataproc 클러스터를 만듭니다.

  • --master-machine-type machine-type 플래그를 사용하면 클러스터에서 마스터 VM 인스턴스(또는 HA 클러스터를 만드는 경우 마스터 인스턴스)에서 사용하는 사전 정의된 머신 유형이나 커스텀 머신 유형을 설정할 수 있습니다.
  • --worker-machine-type custom-machine-type 플래그를 사용하면 클러스터의 작업자 VM 인스턴스에서 사용하는 사전 정의된 머신 유형이나 커스텀 머신 유형을 설정할 수 있습니다.

:

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-6-23040 /
    --worker-machine-type custom-6-23040 /
    other args
Dataproc 클러스터가 시작되면 클러스터 세부정보가 터미널 창에 표시됩니다. 다음은 터미널 창에 표시되는 클러스터 속성의 샘플 목록 일부입니다.
...
properties:
  distcp:mapreduce.map.java.opts: -Xmx1638m
  distcp:mapreduce.map.memory.mb: '2048'
  distcp:mapreduce.reduce.java.opts: -Xmx4915m
  distcp:mapreduce.reduce.memory.mb: '6144'
  mapred:mapreduce.map.cpu.vcores: '1'
  mapred:mapreduce.map.java.opts: -Xmx1638m
...

REST API

커스텀 머신 유형으로 클러스터를 만들려면 cluster.create API 요청의 masterConfig 또는 workerConfig InstanceGroupConfig에서 machineTypeUri를 설정합니다.

:

POST /v1/projects/my-project-id/regions/is-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "test-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-a"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    }
  }
}

확장 메모리가 있는 커스텀 머신 유형으로 Dataproc 클러스터 만들기

Cloud Dataproc은 vCPU당 6.5GB 한도 이상의 확장 메모리가 있는 커스텀 머신 유형을 지원합니다(확장 메모리 가격 참조).

콘솔

Google Cloud 콘솔에서 Dataproc 클러스터 만들기 페이지의 노드 구성 패널에서 마스터 노드 또는 워커 노드 섹션의 머신 유형 메모리를 맞춤 설정할 때 메모리 확장을 클릭합니다.

gcloud 명령어

gcloud 명령줄에서 확장 메모리가 있는 커스텀 CPU를 사용하여 클러스터를 만들려면 -ext 서픽스를 ‑‑master-machine-type 또는 ‑‑worker-machine-type 플래그에 추가합니다.

예시

다음 gcloud 명령줄 샘플은 각 노드에 CPU 1개와 메모리 50GB(50 * 1024 = 51200)가 있는 Dataproc 클러스터를 만듭니다.

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-1-51200-ext /
    --worker-machine-type custom-1-51200-ext /
    other args

API

Dataproc REST API clusters.create 요청의 다음 샘플 <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<> JSON 스니펫은 각 노드에서 CPU 1개와 메모리 50GB(50 * 1024 = 51200)를 지정합니다.

...
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "custom-1-51200-ext",
    ...
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "custom-1-51200-ext",
     ...
...

Arm 머신 유형

Dataproc은 C4A 머신 유형과 같은 Arm 머신 유형을 사용하는 노드로 클러스터 만들기를 지원합니다.

요구사항 및 제한사항:

  • Dataproc 이미지는 ARM 칩셋과 호환되어야 합니다. 현재 Dataproc 2.1-ubuntu20-arm 이미지만 ARM 칩셋과 호환됩니다. 이 이미지는 많은 선택적 및 초기화 작업 구성요소를 지원하지 않습니다(2.1.x 출시 버전 참조).
  • 클러스터당 하나의 이미지를 지정해야 하므로 마스터, 워커, 보조 워커 노드는 선택한 Dataproc ARM 이미지와 호환되는 ARM 머신 유형을 사용해야 합니다.
  • ARM 머신 유형과 호환되지 않는 Dataproc 기능은 사용할 수 없습니다 (예: 로컬 SSD는 C4A 머신 유형에서 지원되지 않음).

Arm 머신 유형으로 클러스터 만들기

콘솔

현재 Google Cloud 콘솔에서는 Dataproc Arm 머신 유형 클러스터를 만들 수 없습니다.

gcloud

Arm c4a-standard-4 머신 유형을 사용하는 Dataproc 클러스터를 만들려면 터미널 창 또는 Cloud Shell에서 다음 gcloud 명령어를 로컬로 실행합니다.

gcloud dataproc clusters create cluster-name \
    --region=REGION \
    --image-version=2.1-ubuntu20-arm \
    --master-machine-type=c4a-standard-4 \
    --worker-machine-type=c4a-standard-4

참고:

  • REGION: 클러스터가 위치할 리전

  • Arm 이미지는 2.1.18-ubuntu20-arm부터 사용할 수 있습니다.

  • 클러스터를 맞춤설정하는 데 사용할 수 있는 추가 명령줄 플래그에 대한 자세한 내용은 gcloud dataproc clusters create 참조 문서를 확인하세요.

  • *-arm images는 설치된 구성요소와 2.1.x 출시 버전 페이지에 나열된 다음 선택적 구성요소만 지원합니다(해당 페이지에 나열된 나머지 2.1 선택적 구성요소 및 모든 초기화 작업은 지원되지 않음).

    • Apache Hive WebHCat
    • Docker
    • Zookeeper(HA 클러스터에 설치됨, HA가 아닌 클러스터의 선택적 구성요소)

API

다음 Dataproc REST API clusters.create 요청 샘플은 Arm 머신 유형 클러스터를 만듭니다.

POST /v1/projects/my-project-id/regions/is-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "sample-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-a"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "c4a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "c4a-standard-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "softwareConfig": {
      "imageVersion": "2.1-ubuntu20-arm"
    }
  }
}

추가 정보