No Cloud Data Fusion, a configuração do cluster se refere a como definir como os pipelines de processamento de dados usam recursos computacionais ao executar trabalhos do Spark no Dataproc. Esta página descreve as principais abordagens para configuração de clusters.
Clusters temporários padrão (recomendado)
O uso dos 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 da execução do pipeline.
- Benefícios dos clusters temporários:
- Simplicidade: não é preciso configurar ou gerenciar o cluster manualmente.
- Eficiência de custo: você paga apenas pelos recursos usados durante a execução do pipeline.
Para ajustar clusters e ajustar o desempenho, consulte Dimensionamento de cluster.
Clusters estáticos (para cenários específicos)
Nos seguintes cenários, é possível usar clusters estáticos:
- Pipelines de longa duração: para pipelines executados continuamente ou por períodos mais longos, um cluster estático pode ser mais econômico do que criar e remover clusters temporários repetidamente.
- Gerenciamento centralizado de clusters: se a organização exigir controle centralizado sobre as políticas de criação e gerenciamento de clusters, os clusters estáticos podem ser usados com ferramentas como o Terraform.
- Tempo 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.
Para usar um cluster estático, defina 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 worker: especifique o tipo de máquina virtual para os nós workers no 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 worker no cluster. O Dataproc ainda pode escalonar esse número automaticamente com base na carga de trabalho.
- Zona: selecione a Google Cloud zona do cluster. A localização pode afetar a localidade dos dados e o desempenho da rede.
- Configurações adicionais: é possível configurar opções avançadas para o cluster estático, como configurações de preempção, de rede e de inicialização.
Práticas recomendadas
Ao criar um cluster estático para os pipelines, use as seguintes configurações.
Parâmetros | Descrição |
---|---|
yarn.nodemanager.delete.debug-delay-sec |
Retém registros YARN. O 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 os contêineres se
eles ultrapassarem a memória física. Valor recomendado: false |
yarn.nodemanager.vmem-check-enabled |
Permite que o YARN verifique se há limites de memória virtual e elimine os contêineres se
eles forem além da memória física. Valor recomendado: false . |
Para mais informações, consulte Executar um pipeline em um cluster atual do Dataproc.
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 pooling de conexões ou de linhas de execução. Qualquer cluster é mantido em execução por um período especificado após a execução. Quando uma nova execução é iniciada, ela tenta encontrar um cluster ocioso disponível que corresponda à configuração do perfil de computação. Se houver um, ele será usado. Caso contrário, um novo cluster será iniciado.
Considerações para reutilizar 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 se estiver ocioso.
- Se você ativar a reutilização de cluster para todas as execuções, o número necessário de clusters para processar todas as execuções será criado conforme necessário. Assim como no provisionador efímero do Dataproc, não há controle direto sobre o número de clusters criados. Você ainda pode usar aspas Google Cloud para gerenciar recursos. Por exemplo, se você executar 100 execuções com 7 execuções paralelas no máximo, terá até 7 clusters em um determinado momento.
Os clusters são reutilizados entre pipelines diferentes assim que esses pipelines usam o mesmo perfil e compartilham as mesmas configurações de perfil. Se a personalização do perfil for usada, os clusters ainda serão reutilizados, mas apenas se as personalizações forem exatamente iguais, incluindo todas as configurações de cluster, como rotulagem de cluster.
Quando a reutilização de cluster está ativada, há duas considerações principais de custo:
- Menos recursos são usados para a inicialização e 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 do custo da reutilização de clusters, é possível usar uma estratégia para economizar ao máximo. A estratégia é identificar um caminho crítico para pipelines em cadeia e permitir a reutilização de clusters para esse caminho crítico. Isso garantiria que o cluster fosse reutilizado imediatamente, sem desperdiçar tempo ocioso e com benefícios de desempenho máximos.
Ativar a reutilização de clusters
Na seção "Configuração de computação" da configuração do pipeline implantado ou ao criar um novo perfil de computação:
- Ative a opção Pular exclusão de cluster.
- O tempo máximo de inatividade é o tempo até que um cluster aguarde o próximo pipeline para reutilização. O tempo máximo de inatividade padrão é de 30 minutos. Para o tempo máximo de inatividade, considere o custo em relação à disponibilidade do cluster para reutilização. Quanto maior o valor do tempo máximo de inatividade, mais clusters ficam inativos, prontos para execução.
Solucionar problemas: compatibilidade de versões
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 do Dataproc que não são compatíveis. O Dataproc não oferece atualizações e suporte para clusters criados com estas versões. Embora seja possível continuar a execução de um cluster que foi criado com uma versão não compatível, recomendamos substituí-lo por um criado com uma versão compatível.
Versão do Cloud Data Fusion | Versão do Dataproc |
---|---|
6.10.1.1 | 2.2***, 2.1, 2.0 * |
6.10 | 2.1, 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
, a menos que recursos específicos do SO
sejam necessários.Para especificar a versão do SO usada no cluster do Dataproc, ela precisa ser compatível com uma das versões do Dataproc com suporte para o Cloud Data Fusion na tabela anterior.
Solução de problemas: o contêiner foi encerrado com um código de saída 3 diferente de zero
Problema: uma política de escalonamento automático não é usada, e os clusters estáticos
do Dataproc estão enfrentando pressão de memória, fazendo com que uma
exceção de falta de memória apareça nos registros: Container exited with a non-zero
exit code 3
.
Recomendado: aumente a memória do executor.
Aumente a memória adicionando um argumento de execução task.executor.system.resources.memory
ao pipeline. O exemplo de argumento de execução a seguir define a memória
como 4096 MB:
"task.executor.system.resources.memory": 4096
Para mais informações, consulte Dimensionamento de cluster.