No Cloud Data Fusion, a configuração de cluster refere-se à definição de como os pipelines de processamento de dados utilizam recursos computacionais ao executar jobs do Spark no Dataproc. Nesta página, descrevemos as principais abordagens para a configuração de clusters.
Clusters temporários padrão (recomendado)
Usar os clusters padrão é a abordagem recomendada para pipelines do Cloud Data Fusion.
- O Cloud Data Fusion provisiona e gerencia automaticamente clusters efêmeros do Dataproc para cada execução de pipeline. Ele cria um cluster no início da execução do pipeline e o exclui após a conclusão do pipeline.
- Benefícios dos clusters efêmeros:
- Simplicidade: não é preciso configurar ou gerenciar manualmente o cluster.
- Relação custo-benefício: você paga apenas pelos recursos usados durante a execução do pipeline.
Para ajustar clusters e ajustar o desempenho, consulte Dimensionamento de clusters.
Clusters estáticos (para cenários específicos)
Nos cenários a seguir, é possível usar clusters estáticos:
- Pipelines de longa duração: para pipelines que são executados continuamente ou por períodos longos, um cluster estático pode ser mais econômico do que criar e eliminar clusters efêmeros repetidamente.
- Gerenciamento centralizado de clusters: se a organização exigir controle centralizado sobre a criação e as políticas de gerenciamento de clusters, os clusters estáticos poderão ser usados com ferramentas como o Terraform.
- Horário de criação do cluster: quando o tempo necessário para criar um novo cluster para cada pipeline é proibitivo para seu caso de uso.
No entanto, os clusters estáticos exigem mais configuração manual e envolvem o gerenciamento do ciclo de vida do cluster por conta própria.
Para usar um cluster estático, é preciso definir a seguinte propriedade no cluster do Dataproc:
dataproc:dataproc.conscrypt.provider.enable=false
Opções de configuração de clusters estáticos
Se você optar por usar clusters estáticos, o Cloud Data Fusion oferece opções de configuração para os seguintes aspectos:
- Tipo de máquina de worker: especifique o tipo de máquina virtual para os nós de trabalho no seu cluster. Isso determina as vCPUs e a memória disponíveis para cada worker.
- Número de workers: defina o número inicial de nós de trabalho no cluster. O Dataproc ainda pode escalonar automaticamente esse número, com base na carga de trabalho.
- Zona: selecione a zona do Google Cloud do cluster. A localização pode afetar a localidade dos dados e o desempenho da rede.
- Configurações adicionais: é possível definir opções avançadas para o cluster estático, como configurações de preempção, configurações de rede e ações de inicialização.
Práticas recomendadas
Ao criar um cluster estático para os pipelines, use as configurações a seguir.
Parâmetros | Descrição |
---|---|
yarn.nodemanager.delete.debug-delay-sec |
Mantém os registros YARN. Valor recomendado: 86400 (equivalente a um dia) |
yarn.nodemanager.pmem-check-enabled |
Permite que o YARN verifique os limites de memória física e elimine contêineres se eles ultrapassarem a memória física. Valor recomendado: false |
yarn.nodemanager.vmem-check-enabled |
Permite que o YARN verifique os limites da memória virtual e elimine contêineres se eles ultrapassarem a memória física. Valor recomendado: false . |
Para mais informações, consulte Executar um pipeline em um cluster atual do Dataproc.
Como reutilizar clusters
É possível reutilizar clusters do Dataproc entre execuções para melhorar o tempo de processamento. A reutilização de clusters é implementada em um modelo semelhante ao pool de conexões ou de linhas de execução. Qualquer cluster é mantido em funcionamento por um determinado tempo após a conclusão da execução. Quando uma nova execução é iniciada, ela tenta encontrar um cluster inativo disponível que corresponda à configuração do perfil de computação. Se houver, ele será usado. Caso contrário, um novo cluster será iniciado.
Considerações sobre a reutilização de clusters
- Os clusters não são compartilhados. Semelhante ao modelo de provisionamento de cluster temporário regular, um cluster executa uma única execução de pipeline por vez. Um cluster é reutilizado somente quando está inativo.
- Se você ativar a reutilização de clusters para todas as execuções, o número necessário de clusters para processar todas elas será criado conforme necessário. Semelhante ao provisionador temporário do Dataproc, não há controle direto sobre o número de clusters criados. Ainda é possível usar as cotações do Google Cloud para gerenciar recursos. Por exemplo, se você executar 100 execuções com 7 no máximo execuções paralelas, terá até sete clusters em um determinado momento.
Os clusters são reutilizados entre diferentes pipelines assim que eles passam a usar o mesmo perfil e compartilham as mesmas configurações de perfil. Se a personalização de perfis for usada, os clusters ainda serão reutilizados, mas somente se as personalizações forem exatamente as mesmas, incluindo todas as configurações de cluster, como rotulagem de cluster.
Quando a reutilização de clusters é ativada, há duas considerações de custo principais:
- Menos recursos são usados para a inicialização do cluster.
- Mais recursos são usados para que os clusters fiquem inativos entre as execuções do pipeline e após a última execução do pipeline.
Embora seja difícil prever o efeito de custo da reutilização do cluster, é possível empregar uma estratégia para ter o máximo de economia. A estratégia é identificar um caminho crítico para pipelines encadeados e permitir a reutilização do cluster para esse caminho crítico. Isso garante que o cluster seja reutilizado imediatamente, que não haja desperdício de tempo ocioso e que os benefícios de desempenho máximo sejam alcançados.
Ativar reutilização de cluster
Na seção "Configuração do Compute" da configuração do pipeline implantado ou ao criar um novo perfil de computação:
- Ative a opção Ignorar exclusão do cluster.
- O tempo máximo de inatividade é o tempo até que um cluster espera que o próximo pipeline o reutilize. O tempo máximo de inatividade padrão é de 30 minutos. Para o tempo máximo de inatividade, considere o custo versus a disponibilidade do cluster para reutilização. Quanto maior o valor do tempo máximo de inatividade, mais clusters ficam inativos, prontos para uma execução.
Solução de problemas: compatibilidade da versão
Problema: a versão do ambiente do Cloud Data Fusion pode não ser compatível com a versão do cluster do Dataproc.
Recomendado: faça upgrade para a versão mais recente do Cloud Data Fusion e use uma das versões compatíveis do Dataproc.
As versões anteriores do Cloud Data Fusion são compatíveis apenas com versões sem suporte do Dataproc. O Dataproc não oferece atualizações e suporte para clusters criados com estas versões. É possível continuar executando um cluster criado com uma versão não compatível, mas recomendamos substituí-lo por um criado por uma versão compatível.
Versão do Cloud Data Fusion | Versão do Dataproc |
---|---|
6.10 e mais recente | 2.1 e 2.0 * |
6,9 | 2,1, 2,0, 1,5 * |
6,7-6,8 | 2,0, 1,5 * |
6,4-6,6 | 2,0 *, 1,3 ** |
6,1-6,3 | 1,3** |
major.minor
.Para especificar a versão do SO usada no cluster do Dataproc, ela precisa ser compatível com uma das versões do Dataproc compatíveis com o Cloud Data Fusion na tabela anterior.