Tipos de máquina personalizados

Os clusters do Google Cloud Dataproc são construídos com base nas instâncias do Google 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 tipos de máquina predefinidos e tipos de máquina personalizados. Os clusters do Cloud Dataproc usam os tipos padrão e personalizados para nodes mestre e/ou de trabalho.

Casos de uso de tipos de máquinas personalizados

Como mencionado na documentação de tipos de máquinas personalizados, esses tipos 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.

Exemplo

Imagine que você tem uma carga de trabalho que precise de mais potência de processamento do que a fornecido 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 Cloud Dataproc com nodes mestre e/ou de trabalho no intervalo intermediário, com 6 CPUs virtuais e 25 GB de memória.

Preço

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

Usar os tipos de máquinas personalizados com o Cloud Dataproc

No momento, a criação de clusters com tipos de máquina personalizados só é aceita por meio do comando gcloud dataproc do SDK do Google Cloud.

Primeiro, entenda os tipos de máquinas personalizados

Para criar um cluster com tipos de máquina personalizados, leia Como criar uma instância de VM com um tipo de máquina personalizado para entender considerações importantes, inclusive especificações de tipo personalizadas e preços.

Os tipos de máquina personalizados usam uma especificação machine type especial. Como 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 no tipo da máquina correspondem ao número de CPUs virtuais na máquina (neste caso, 6) e à quantidade de memória (neste caso, 23040). A quantidade de memória é calculada multiplicando a quantidade de memória em gigabytes por 1024. Neste exemplo, multiplicamos 22,5 (GB) por 1024:

22.5 * 1024 = 23040

Seguindo os limites das combinações de CPU e memória, use a sintaxe acima para especificar o tipo de máquina personalizado que quer usar com os clusters. Defina o tipo de máquina para nós mestre e/ou de trabalhado 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. As configurações do tipo de máquina para trabalhos preemptivos (secundários) seguem as configurações dos trabalhos principais e não podem ser definidos separadamente. Consulte Como preemptivos funcionam com o Cloud Dataproc.

Criar um cluster do Cloud Dataproc com tipos de máquinas personalizados

Comando gcloud

Execute o comando gcloud dataproc clusters create com as seguintes sinalizações para criar um cluster do Cloud Dataproc com tipos de máquina personalizados mestre e/ou de trabalho:
  • A sinalização --master-machine-type custom-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 personalizado usado pelas instâncias de VM de trabalho no cluster.

Exemplo:

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-6-23040 /
    --worker-machine-type custom-6-23040 /
    other args
Os detalhes do cluster do Cloud Dataproc são exibidos na janela do terminal quando o cluster é iniciado. 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
      }
    }
  }
}

Console

Ao criar um cluster do Cloud Dataproc na página Criar um cluster, clique em Personalizar na seção "Tipo de máquina" do nó mestre e/ou no painel "Nós de trabalho" e preencha o número de núcleos e a quantidade de memória. Os rótulos de console e o texto de ajuda ajudam a selecionar valores de tipo de máquina personalizado válidos.

A captura de tela a seguir mostra valores de nó mestre e de trabalho para criar um cluster com seis CPUs virtuais e 22,5 GB de memória em cada nó.
Clique em Estender memória para fornecer valores de memória estendida para os nós mestre e/ou de trabalho.

Memória estendida de CPU

O Cloud 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.

Como usar memória estendida

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 Cloud 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 REST

O seguinte snippet JSON de amostra de uma solicitação clusters.create da API REST do Cloud 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",
     ...
...

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 na página Criar um cluster do Cloud Dataproc do Console do Cloud.

Para saber mais

Consulte Como criar uma instância de VM com um tipo de máquina personalizado.