Tipos de máquina compatíveis

Os clusters do Dataproc são criados com base nas instâncias do Compute Engine. Os tipos de máquinas definem os recursos de hardware virtualizados que estão disponíveis para uma instância. O Compute Engine oferece todos os tipos de máquina predefinidos e tipos de máquina personalizados. Os clusters do Dataproc podem usar tipos predefinidos e personalizados para nós mestre e/ou de trabalho.

Os clusters do Dataproc são compatíveis com os seguintes tipos de máquina predefinidos do Compute Engine (a disponibilidade do tipo de máquina varia de acordo com a região):

  • Tipos de máquinas de uso geral, que incluem os tipos de máquina N1, N2, N2D, E2, C3, C4 e N4. O Dataproc também oferece suporte a tipos de máquina personalizados N1, N2, N2D, E2, C3, C4 e N4.

    Limitações:

    • o tipo de máquina n1-standard-1 não é compatível com imagens 2.0 ou mais recentes. O tipo de máquina n1-standard-1 não é recomendado para imagens pré-2.0. Use um tipo de máquina com mais memória.
    • Os tipos de máquina com núcleo compartilhado não são compatíveis, o que inclui os tipos de máquina a seguir:
      • E2: tipos de máquina com núcleo compartilhado e2-micro, e2-small e e2-medium e
      • N1: tipos de máquina com núcleo compartilhado f1-micro e g1-small.
    • O Dataproc seleciona hyperdisk-balanced como o tipo de disco de inicialização se o tipo de máquina for C3, C4 ou N4.
  • Tipos de máquina com otimização de computação, que incluem os tipos de máquina C2 e C2D.
  • Tipos de máquina com otimização de memória, que incluem tipos de máquina M1 e T2.
  • Tipos de máquina ARM, que incluem tipos de máquina C4A.

Tipos de máquina personalizados

O Dataproc é compatível com séries N1 tipos de máquina personalizados.

Os tipos de máquina personalizados são ideais para as seguintes cargas de trabalho:

  • cargas de trabalho não ideais para tipos de máquinas predefinidos;
  • Cargas de trabalho que exigem mais potência de processamento ou mais memória, mas não precisam de todos os upgrades fornecidos pelo próximo nível de tipo de máquina.

Por exemplo, se você tem uma carga de trabalho que precisa de mais capacidade de processamento do que a fornecida por uma instância n1-standard-4, mas a próxima etapa, uma instância n1-standard-8, fornece muita capacidade. Com tipos de máquinas personalizados, você pode criar clusters do Dataproc com nodes mestre e/ou de trabalho no intervalo intermediário, com 6 CPUs virtuais e 25 GB de memória.

Especificar um tipo de máquina personalizado

Os tipos de máquina personalizados usam uma especificação machine type especial e estão sujeitos a limitações. Por exemplo, a especificação do tipo de máquina personalizada para uma VM personalizada com seis CPUs virtuais e 22,5 GB de memória é custom-6-23040.

Os números na especificação do tipo de máquina correspondem ao número de CPUs virtuais (vCPUs) na máquina (6) e à quantidade de memória (23040). A quantidade de memória é calculada multiplicando a quantidade de memória em gigabytes por 1024 (consulte Como expressar a memória em GB ou MB). Neste exemplo, 22,5 (GB) são multiplicados por 1.024: 22.5 * 1024 = 23040.

Use a sintaxe acima para especificar o tipo de máquina personalizado com seus clusters. É possível definir o tipo de máquina para nós mestres, de trabalho ou ambos ao criar um cluster. Se você definir ambos, o nó mestre poderá usar um tipo de máquina personalizado que seja diferente do tipo de máquina personalizado usado por trabalhos. O tipo de máquina usado por qualquer worker secundário segue as configurações dos workers principais e não pode ser definido separadamente. Consulte Workers secundários: VMs preemptivas e não preemptivas.

Preços de tipos de máquina personalizados

Os preços dos tipos de máquina personalizados são baseadoa nos recursos usados em uma máquina personalizada. Os preços do Dataproc são adicionados ao custo dos recursos de computação e são baseados no número total de CPUs virtuais (vCPUs) usado em um cluster.

Crie um cluster do Dataproc com um tipo de máquina especificado

Console

No painel Configurar nós da página Criar um cluster do Dataproc no console do Google Cloud, selecione a família de máquinas, a série e o tipo para os nós mestre e de trabalho do cluster.

Comando gcloud

Execute o comando gcloud dataproc clusters create com as seguintes flags para criar um cluster do Dataproc com os tipos de máquina mestre e/ou worker:

  • A sinalização --master-machine-type machine-type permite definir o tipo de máquina personalizado usado pela instância de VM mestre no cluster (ou instâncias mestre se você criar um cluster de alta disponibilidade
  • A sinalização --worker-machine-type custom-machine-type permite definir o tipo de máquina predefinido ou personalizado usado pelas instâncias de VM de worker no cluster

Exemplo:

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-6-23040 /
    --worker-machine-type custom-6-23040 /
    other args
Quando o cluster do Dataproc é iniciado, os detalhes do cluster são exibidos na janela do terminal. Esta é uma listagem de amostra parcial de propriedades do cluster exibidas na janela do terminal:
...
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
...

API REST

Para criar um cluster com tipos de máquinas personalizados, defina machineTypeUri no masterConfig e/ou workerConfig no InstanceGroupConfig na solicitação de API cluster.create.

Exemplo:

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
      }
    }
  }
}

Criar um cluster do Dataproc com um tipo de máquina personalizado e memória estendida

O Dataproc aceita tipos de máquina personalizados com memória estendida além do limite de 6,5 GB por vCPU. Consulte Preços estendidos de memória.

Console

Clique em Estender memória ao personalizar a memória do tipo de máquina na seção do nó mestre e/ou de trabalho no painel Configurar nós na página Criar um cluster do Dataproc no console do Google Cloud.

Comando gcloud

Para criar um cluster a partir da linha de comando gcloud com CPUs personalizadas com memória estendida, adicione um sufixo -ext às sinalizações ‑‑master-machine-type e/ou ‑‑worker-machine-type.

Exemplo

A seguinte amostra da linha de comando gcloud cria um cluster do Dataproc com uma CPU e 50 GB de memória (50 * 1.024 = 51.200) em cada nó:

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

API

O snippet JSON de amostra <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<> de uma solicitação clusters.create da API REST do Dataproc especifica uma CPU e memória de 50 GB (50 * 1.024 = 51.200) em cada nó:

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

Tipos de máquina ARM

O Dataproc oferece suporte à criação de um cluster com nós que usam tipos de máquina ARM, como o tipo de máquina C4A.

Requisitos e limitações:

  • A imagem do Dataproc precisa ser compatível com o chipset ARM. Atualmente, somente a imagem do Dataproc 2.1-ubuntu20-arm é compatível com o CHIPSET ARM. Essa imagem não oferece suporte a muitos componentes opcionais e de ação de inicialização (consulte versões de lançamento 2.1.x).
  • Como uma imagem precisa ser especificada para um cluster, os nós mestre, de trabalho e secundários precisam usar um tipo de máquina ARM que seja compatível com a imagem ARM do Dataproc selecionada.
  • Os recursos do Dataproc que não são compatíveis com os tipos de máquina ARM não estão disponíveis. Por exemplo, SSDs locais não são compatíveis com os tipos de máquina C4A.

Criar um cluster do Dataproc com um tipo de máquina ARM

Console

No momento, o console do Google Cloud não oferece suporte à criação de um cluster do tipo de máquina ARM do Dataproc.

gcloud

Para criar um cluster do Dataproc que use o tipo de máquina c4a-standard-4 ARM, execute o comando gcloud a seguir localmente em uma janela de terminal ou no Cloud Shell.

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

Observações:

  • REGION: a região em que o cluster vai ficar.

  • As imagens ARM estão disponíveis a partir de 2.1.18-ubuntu20-arm.

  • Consulte a documentação de referência gcloud dataproc clusters create para informações sobre outras flags de linha de comando que podem ser usadas para personalizar seu cluster.

  • *-arm images oferece suporte apenas aos componentes instalados e aos seguintes componentes opcionais listados na página versões de lançamento 2.1.x (os demais componentes opcionais da 2.1 e todas as ações de inicialização listadas nessa página não são compatíveis):

    • Apache Hive WebHCat
    • Docker
    • Zookeeper (instalado em clusters HA; componente opcional em clusters que não são HA)

API

O exemplo de solicitação clusters.create da API REST do Dataproc cria um cluster do tipo de máquina 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"
    }
  }
}

Para mais informações