Os clusters do Serviço Gerenciado para Apache Spark são criados em 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 Serviço Gerenciado para Apache Spark podem usar tipos predefinidos e personalizados para nós mestre e de trabalho.
Os clusters do Serviço Gerenciado para Apache Spark oferecem suporte aos 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, N4 e N4D (o Serviço Gerenciado para Apache Spark
também oferece suporte aos tipos de máquina personalizados N1, N2, N2D, E2, N4 e N4D).
Limitações:
- O tipo de máquina n1-standard-1 não é compatível com imagens 2.0 e mais recentes (o tipo de máquina n1-standard-1 não é recomendado para imagens anteriores à versão 2.0. Em vez disso, 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, que
incluem os seguintes tipos de máquina não compatíveis:
- E2: tipos de máquina com núcleo compartilhado e2-micro, e2-small e e2-medium;
- N1: tipos de máquina com núcleo compartilhado f1-micro e g1-small.
- O Serviço Gerenciado para Apache Spark seleciona
hyperdisk-balancedcomo o tipo de disco de inicialização se o tipo de máquina for C4, N4 ou N4D.
- Tipos de máquina otimizados para computação, que incluem os tipos de máquina C2 e C2D.
- Tipos de máquina otimizados para memória, que incluem os tipos de máquina M1 e M2.
- Tipos de máquina Arm, que incluem C4A tipos de máquina.
Tipos de máquina personalizados
O Serviço Gerenciado para Apache Spark oferece suporte aos tipos de máquina personalizados das séries N1, N2, N2D, E2, N4 e N4D.
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 Serviço Gerenciado para Apache Spark com nós 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 especial machine type 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.
Você especifica o tipo de máquina personalizado ao criar um cluster. É 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 tipo de máquina personalizados
Os preços dos tipo de máquina personalizados são baseadoa nos recursos usados em uma máquina personalizada. Os preços do Serviço Gerenciado para Apache Spark 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.
Criar um cluster do Serviço Gerenciado para Apache Spark com um tipo de máquina especificado
Console
No painel Configurar nós da página Criar um cluster do Serviço Gerenciado para Apache Spark no Google Cloud console, 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
gcloud dataproc clusters create
comando com as seguintes sinalizações para criar um cluster do Serviço Gerenciado para Apache Spark com os tipos de máquina mestre
e/ou worker:
- A
--master-machine-type machine-typeflag permite definir o tipo de máquina predefinido ou personalizado usado pela instância de VM mestre no cluster (ou instâncias mestras se você criar um cluster de alta disponibilidade). - A
--worker-machine-type custom-machine-typeflag 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
... 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
Para criar um cluster com tipos de máquinas personalizados, defina o
machineTypeUri no masterConfig e/ou workerConfig
InstanceGroupConfig
na
cluster.create
solicitação de API.
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 Serviço Gerenciado para Apache Spark com tipo de máquina personalizado e memória estendida
O Serviço Gerenciado para Apache Spark oferece suporte a 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
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 Serviço Gerenciado para Apache Spark 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
...
"masterConfig": {
"numInstances": 1,
"machineTypeUri": "custom-1-51200-ext",
...
},
"workerConfig": {
"numInstances": 2,
"machineTypeUri": "custom-1-51200-ext",
...
...
Tipos de máquina Arm
O Serviço Gerenciado para Apache Spark 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 Serviço Gerenciado para Apache Spark precisa ser compatível com o chipset Arm.
As imagens do Serviço Gerenciado para Apache Spark
2.1-ubuntu20-arm,2.2-ubuntu22-arm, e2.3-ubuntu22-arm(e o sufixo-armmais recente) são compatíveis com o chipset Arm. As imagens compatíveis com Arm não oferecem suporte a muitos componentes opcionais e de ação de inicialização, conforme observado nas páginas da versão de lançamento da imagem. - Como uma imagem precisa ser especificada para um cluster, os nós mestre, de worker e de worker secundário precisam usar um tipo de máquina Arm compatível com a imagem Arm do Serviço Gerenciado para Apache Spark selecionada.
- Os recursos do Serviço Gerenciado para Apache Spark que não são compatíveis com os tipos de máquina Arm não estão disponíveis (por exemplo, os SSDs locais não são compatíveis com os tipos de máquina C4A).
- As imagens Arm oferecem suporte apenas a componentes pré-instalados e a um conjunto limitado de componentes opcionais. Outros componentes opcionais e todas as ações de inicialização não são compatíveis.
Criar um cluster do Serviço Gerenciado para Apache Spark com um tipo de máquina Arm
Console
Para criar um cluster do Serviço Gerenciado para Apache Spark que usa um tipo de máquina Arm, faça o seguinte:
No Google Cloud console, acesse a página Criar um cluster do Dataproc no Compute Engine do Serviço Gerenciado para Apache Spark.
Acessar a página Criar um cluster do Dataproc no Compute Engine
Na seção Controle de versão, clique em Alterar para selecionar uma imagem do chipset Arm.
Selecione o painel Configurar nós.
Selecione a série Arm (como
C4A) e o tipo de máquina Arm para cada nó do cluster.Confirme ou especifique outros detalhes do cluster e clique em Criar.
gcloud
Para criar um cluster do Serviço Gerenciado para Apache Spark que usa um tipo de máquina Arm, execute o seguinte comando gcloud localmente em uma janela de terminal ou no
Cloud Shell. Este exemplo especifica a imagem 2.1-ubuntu20-arm e o tipo de máquina Arm 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
Observações:
REGION: a região em que o cluster será localizado.
Consulte a documentação de referência do comando gcloud dataproc clusters create para informações sobre outras flags de linha de comando que podem ser usadas para personalizar o cluster.
API
A seguinte amostra de solicitação
clusters.create
da API REST do Serviço Gerenciado para Apache Spark cria um cluster que usa o tipo de máquina Arm c4a-standard-4.
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"
}
}
}
A seguir
- Saiba mais sobre as VMs Arm no Compute.
- Saiba como criar uma VM com um tipo de máquina personalizado.
- Veja como criar e iniciar uma instância do Compute Engine.