Depois de criar um cluster do Cloud Dataproc, será possível ajustar ("escalonar") o cluster aumentando ou diminuindo o número de nós de trabalho principais ou secundários no cluster. Escalone um cluster do Cloud Dataproc a qualquer momento, mesmo quando houver jobs em execução no cluster. Não é possível alterar o tipo de máquina de um cluster atual (escalonamento vertical). Para escalonar verticalmente, crie um cluster usando um tipo de máquina com suporte e migre os jobs para o novo cluster.
É possível escalonar um cluster do Dataproc para o seguinte:
- Para aumentar o número de trabalhos e executar um job mais rapidamente.
- Para diminuir o número de trabalhos e economizar. Consulte Desativação otimizada como opção ao reduzir o tamanho de um cluster para evitar a perda do trabalho em andamento.
- Para aumentar o número de nós e expandir o armazenamento disponível do Hadoop Distributed File System (HDFS).
Como os clusters podem ser escalonados mais de uma vez, convém aumentar ou diminuir o tamanho do cluster ao mesmo tempo e diminuir ou aumentar o tamanho posteriormente.
Usar o escalonamento
Há três maneiras de escalonar o cluster do Dataproc:
- Use a ferramenta de linha de comando
gcloud
na CLI gcloud. - Edite a configuração do cluster no consoleGoogle Cloud .
- Usar a REST API.
Os novos trabalhos adicionados a um cluster usarão o mesmo tipo de máquina dos trabalhos existentes. Por exemplo, se um cluster for criado com
workers que usam o tipo de máquina n1-standard-8
, os novos workers
também usarão o tipo de máquina n1-standard-8
.
Escalone o número de trabalhos principais, secundários (preemptivos) ou ambos. Por exemplo, se você só escalonar o número de trabalhos preemptivos, o número de trabalhos principais permanecerá o mesmo.
gcloud
Para escalonar um cluster comgcloud dataproc clusters update
,
execute o seguinte comando:
gcloud dataproc clusters update cluster-name \ --region=region \ [--num-workers and/or --num-secondary-workers]=new-number-of-workers
gcloud dataproc clusters update dataproc-1 \ --region=region \ --num-workers=5 ... Waiting on operation [operations/projects/project-id/operations/...]. Waiting for cluster update operation...done. Updated [https://dataproc.googleapis.com/...]. clusterName: my-test-cluster ... masterDiskConfiguration: bootDiskSizeGb: 500 masterName: dataproc-1-m numWorkers: 5 ... workers: - my-test-cluster-w-0 - my-test-cluster-w-1 - my-test-cluster-w-2 - my-test-cluster-w-3 - my-test-cluster-w-4 ...
API REST
Consulte clusters.patch.
Exemplo
PATCH /v1/projects/project-id/regions/us-central1/clusters/example-cluster?updateMask=config.worker_config.num_instances,config.secondary_worker_config.num_instances { "config": { "workerConfig": { "numInstances": 4 }, "secondaryWorkerConfig": { "numInstances": 2 } }, "labels": null }
Console
Depois que um cluster é criado, é possível escalonar um cluster abrindo a página Detalhes do cluster na página Clusters do console Google Cloud e clicando no botão Editar na guia Configuração.

Como o Dataproc seleciona nós de cluster para remoção
Em clusters criados com versões de imagem 1.5.83+, 2.0.57+, e 2.1.5+, ao reduzir um cluster, o Dataproc tenta minimizar o impacto da remoção de nós em aplicativos YARN em execução. Para isso, primeiro remove nós inativos, não íntegros e ociosos e, em seguida, remove nós com o menor número de mestres de aplicativos YARN e contêineres em execução.
Desativação otimizada
Quando você diminui um cluster, o trabalho em andamento pode ser interrompido antes da conclusão. Se você estiver usando o Dataproc v 1.2 ou posterior, use a desativação otimizada, que incorpora Desativação otimizada de nós do YARN para concluir o trabalho em andamento em um worker antes de ser removido do cluster do Cloud Dataproc.
Desativação otimizada e trabalhos secundários
O grupo de trabalhos preemptivos (secundário) continuará provisionando ou excluindo trabalhos para alcançar o tamanho esperado mesmo após uma operação de escalonamento de cluster ser marcada como concluída. Se você tentar realizar a desativação otimizada em um worker secundário
e receber uma mensagem de erro semelhante a esta:
"O grupo de workers
secundários não pode ser modificado fora do Dataproc. Se você tiver criado ou atualizado este cluster recentemente, espere alguns minutos antes de fazer uma desativação otimizada. Dessa forma, todas as instâncias secundárias poderão ingressar no cluster ou sair dele.
Tamanho esperado do grupo de worker secundário: x, tamanho real: y",
aguarde
alguns minutos e repita a solicitação de desativação otimizada.
Use a desativação otimizada
A desativação otimizada do Dataproc incorpora a Desativação otimizada de nós YARN para concluir o trabalho em andamento em um worker antes de ser removido do cluster do Cloud Dataproc. Como padrão, a desativação otimizada fica desativada. Para ativá-la, você define um valor de tempo limite ao atualizar o cluster de modo a remover um ou mais trabalhadores do cluster.
gcloud
Ao atualizar um cluster para remover um ou mais workers, use o comando gcloud dataproc clusters update com a sinalização--graceful-decommission-timeout
. Os valores de tempo limite (string) podem ser um valor de "0s" (o padrão, desativação à força, não otimizada) ou uma duração positiva em relação ao tempo atual (por exemplo, "3s").
A duração máxima é um dia.
gcloud dataproc clusters update cluster-name \ --region=region \ --graceful-decommission-timeout="timeout-value" \ [--num-workers and/or --num-secondary-workers]=decreased-number-of-workers \ ... other args ...
API REST
Consulte clusters.patch.gracefulDecommissionTimeout. Os valores de tempo limite (string) podem ser um valor de "0" (o padrão, desativação de modo forçado, e não otimizado) ou uma duração em segundos (por exemplo, "3s"). A duração máxima é um dia.Console
Após a criação de um cluster, realize a desativação otimizada dele. Basta abrir a página Detalhes do cluster, na página Clusters no console Google Cloud , e clicar no botão Editar na guia Configuração.

Cancelar uma operação de redução de escala de desativação otimizada
Em clusters do Dataproc criados com as versões de imagem 2.0.57+ ou 2.1.5+, é possível executar o comando gcloud dataproc operations cancel
ou emitir uma solicitação operations.cancel
da API Dataproc para cancelar uma operação de redução gradual de desativação normal.
Quando você cancela uma operação de redução de escala de desativação otimizada:
Os workers em um estado
DECOMMISSIONING
são reativados e se tornamACTIVE
após a conclusão do cancelamento da operação.Se a operação de redução de escala incluir atualizações de rótulos, elas talvez não entrem em vigor.
Para verificar o status da solicitação de cancelamento, execute o comando gcloud dataproc operations describe
ou emita uma solicitação operations.get
da API Dataproc. Se a operação de cancelamento for bem-sucedida, o status da operação interna será marcado
como CANCELLED
.