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 CLIgcloud
. - 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 seguinte comando.gcloud dataproc clusters update cluster-name \ --region=region \ [--num-workers and/or --num-secondary-workers]=new-number-of-workersem que cluster-name é o nome do cluster a ser atualizado e new-number-of-workers é o número atualizado de nós de trabalho principais e/ou secundários. Por exemplo, para escalonar um cluster chamado "dataproc-1" para usar cinco nós de trabalho principais, execute o comando a seguir.
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 de Clusters do Console do Cloud e clique 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.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.
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 ...