Tipos de máquinas suportados

Os clusters do Dataproc são criados em instâncias do Compute Engine. Os tipos de máquinas definem os recursos de hardware virtualizados disponíveis para uma instância. O Compute Engine oferece tipos de máquinas predefinidos e tipos de máquinas personalizados. Os clusters do Dataproc podem usar tipos predefinidos e personalizados para os nós principais e de trabalho.

Os clusters do Dataproc suportam os seguintes tipos de máquinas predefinidos do Compute Engine (a disponibilidade do tipo de máquina varia consoante a região):

  • Tipos de máquinas de utilização geral, que incluem os tipos de máquinas N1, N2, N2D, E2, C3, C4 e N4 (o Dataproc também suporta os tipos de máquinas personalizados N1, N2, N2D, E2, C3, C4 e N4).

    Limitações:

    • O tipo de máquina n1-standard-1 não é suportado para imagens 2.0 ou superior (o tipo de máquina n1-standard-1 não é recomendado para imagens anteriores à versão 2.0. Em alternativa, use um tipo de máquina com mais memória).
    • Os tipos de máquinas com núcleo partilhado não são suportados, o que inclui os seguintes tipos de máquinas não suportados:
      • E2: tipos de máquinas com núcleo partilhado e2-micro, e2-small e e2-medium, e
      • N1: tipos de máquinas com núcleo partilhado f1-micro e g1-small.
    • O Dataproc seleciona hyperdisk-balanced como o tipo de disco de arranque se o tipo de máquina for C4 ou N4.
  • Tipos de máquinas otimizadas para computação, que incluem os tipos de máquinas C2 e C2D.
  • Tipos de máquinas com megamemória, que incluem os tipos de máquinas M1 e M2.
  • Tipos de máquinas ARM, que incluem os tipos de máquinas C4A.

Tipos de máquinas personalizados

O Dataproc suporta tipos de máquinas personalizados da série N1.

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

  • Cargas de trabalho que não são adequadas para os tipos de máquinas predefinidos.
  • Cargas de trabalho que requerem mais capacidade de processamento ou mais memória, mas não precisam de todas as atualizações fornecidas pelo nível de tipo de máquina seguinte.

Por exemplo, se tiver uma carga de trabalho que precise de mais capacidade de processamento do que a fornecida por uma instância n1-standard-4, mas o passo seguinte, uma instância n1-standard-8, fornecer demasiada capacidade. Com os tipos de máquinas personalizados, pode criar clusters do Dataproc com nós principais e/ou de trabalho no intervalo médio, com 6 CPUs virtuais e 25 GB de memória.

Especifique um tipo de máquina personalizado

Os tipos de máquinas 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 personalizado para uma VM personalizada com 6 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 Expressar a memória em GB ou MB). Neste exemplo, 22,5 (GB) é multiplicado por 1024: 22.5 * 1024 = 23040.

Usa a sintaxe acima para especificar o tipo de máquina personalizado com os seus clusters. Pode definir o tipo de máquina para os nós principais ou de trabalho, ou ambos, quando cria um cluster. Se definir ambos, o nó principal pode usar um tipo de máquina personalizado que seja diferente do tipo de máquina personalizado usado pelos trabalhadores. O tipo de máquina usado por todos os trabalhadores secundários segue as definições dos trabalhadores principais e não pode ser definido separadamente (consulte Trabalhadores secundários: VMs preemptíveis e não preemptíveis).

Preços de tipos de máquinas personalizados

Os preços dos tipos de máquinas personalizados baseiam-se nos recursos usados numa máquina personalizada. O preço do Dataproc é adicionado ao custo dos recursos de computação e baseia-se no número total de CPUs virtuais (vCPUs) usadas num cluster.

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

Consola

No painel Configurar nós da página Criar um cluster do Dataproc na Google Cloud consola, selecione a família, a série e o tipo de máquinas para os nós principais 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 tipos de máquinas principais e/ou de trabalho:

  • A flag --master-machine-type machine-type permite-lhe definir o tipo de máquina predefinido ou personalizado usado pela instância de VM principal no seu cluster (ou instâncias principais se criar um cluster de HA)
  • A flag --worker-machine-type custom-machine-type permite-lhe definir o tipo de máquina predefinido ou personalizado usado pelas instâncias de VM do worker no seu cluster

Exemplo:

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-6-23040 /
    --worker-machine-type custom-6-23040 /
    other args
Assim que o cluster do Dataproc for iniciado, os detalhes do cluster são apresentados na janela do terminal. Segue-se uma amostra parcial da listagem de propriedades do cluster apresentadas 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 o elemento machineTypeUri no elemento masterConfig e/ou workerConfig InstanceGroupConfig no pedido da 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
      }
    }
  }
}

Crie um cluster do Dataproc com um tipo de máquina personalizado com memória expandida

O Dataproc suporta tipos de máquinas personalizados com memória expandida além do limite de 6,5 GB por vCPU (consulte os preços da memória expandida).

Consola

Clique em Estender memória quando personalizar a memória do tipo de máquina na secção Nó principal e/ou nós de trabalho do painel Configurar nós na página Criar um cluster do Google Cloud console.

Comando gcloud

Para criar um cluster a partir da linha de comandos gcloud com CPUs personalizadas com memória expandida, adicione um sufixo -ext aos flags ‑‑master-machine-type e/ou ‑‑worker-machine-type.

Exemplo

O seguinte exemplo de linha de comandos do gcloud cria um cluster do Dataproc com 1 CPU e 50 GB de memória (50 * 1024 = 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 seguinte fragmento de JSON <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<> de um pedido clusters.create da API REST Dataproc especifica 1 CPU e 50 GB de memória (50 * 1024 = 51 200) em cada nó:

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

Tipos de máquinas ARM

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

Requisitos e limitações:

  • A imagem do Dataproc tem de ser compatível com o chipset ARM. As imagens do Dataproc 2.1-ubuntu20-arm, 2.2-ubuntu22-arm, e 2.3-ubuntu22-arm (e o sufixo -arm posterior) são compatíveis com o chipset ARM. As imagens compatíveis com ARM não suportam muitos componentes opcionais e de ação de inicialização, conforme indicado nas páginas da versão de lançamento de imagens.
  • Uma vez que tem de ser especificada uma imagem para um cluster, os nós mestre, trabalhador e trabalhador secundário têm de usar um tipo de máquina ARM que seja compatível com a imagem ARM do Dataproc selecionada.
  • As funcionalidades do Dataproc que não são compatíveis com os tipos de máquinas ARM não estão disponíveis (por exemplo, os SSDs locais não são suportados pelos tipos de máquinas C4A).
  • As imagens ARM só suportam componentes pré-instalados e um conjunto limitado de componentes opcionais. Outros componentes opcionais e todas as ações de inicialização não são suportados.

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

Consola

Atualmente, a Google Cloud consola não suporta a criação de um cluster de tipo de máquina ARM do Dataproc.

gcloud

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

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

Notas:

  • REGION: a região onde o cluster vai estar localizado.

  • As imagens ARM estão disponíveis a partir do 2.1.18-ubuntu20-arm, 2.2.61-ubuntu22-arm e 2.3.7-ubuntu22-arm.

  • Consulte a documentação de referência gcloud dataproc clusters create para obter informações sobre flags de linha de comandos adicionais que pode usar para personalizar o cluster.

  • As imagens *-arm suportam apenas os componentes pré-instalados e os seguintes componentes opcionais indicados nas versões de lançamento 2.1.x, versões de lançamento 2.2.x, e versões de lançamento 2.3.x. Os outros componentes opcionais 2.1, 2.2 e 2.3, juntamente com todas as ações de inicialização indicadas, não são suportados:

    • Apache Hive WebHCat
    • Docker
    • Zeppelin
    • Zookeeper (instalado em clusters de HA; componente opcional em clusters sem HA)

API

O seguinte pedido de amostra da API REST Dataproc clusters.create 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"
    }
  }
}

O que se segue?