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.
Por que escalonar um cluster do Dataproc?
- 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 Filesystem (HDFS).
Como os clusters podem ser escalonados mais de uma vez, convém aumentar/diminuir o tamanho do cluster ao mesmo tempo e diminuir/aumentar o tamanho posteriormente.
Como usar 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 console do Google 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 com gcloud dataproc clusters update, execute o comando a seguir.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
Após a criação de um cluster, é possível escalonar um cluster abrindo a página Detalhes do cluster na página Console do Google Cloud Clusters, e clicando no botão Editar na guia Configuração. Informe um novo valor para o número de nós de trabalho e/ou nós de trabalho preemptivos (atualizados para "5" e "2", respectivamente, na captura de tela a seguir). Clique em Salvar para atualizar o cluster.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 o cluster, o Dataproc tenta minimizar o impacto da remoção de nós em aplicativos YARN em execução. Primeiro, ele remove nós inativos, inativos e inativos e, em seguida, remove nós com os masters de aplicativos YARN em execução 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 mais recente, use a desativação otimizada, que incorpora a 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.
Além disso:
- Você pode desativar à força os trabalhos preemptivos a qualquer momento.
- Você desativa de modo otimizado os trabalhos principais a qualquer momento.
Como usar 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 Console do Google Cloud, Clusters, e clicar no botão Editar na guia Configuração. Na seção Desativação otimizada, marque a caixa "Usar desativação otimizada" e selecione um valor de tempo limite. Clique em Salvar para atualizar o cluster.Como cancelar uma operação de redução de escala de desativação otimizada
Em clusters do Dataproc criados com 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 de escala de desativação.
Quando você cancela uma operação de redução de escala de desativação otimizada:
Os workers em um estado
DECOMMISSIONING
são ativados novamente 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 podem não entrar 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 CANCELADO.