No Cloud Data Fusion, a configuração do cluster define como os os pipelines de processamento de dados utilizam recursos computacionais ao executar no Dataproc. Esta página descreve 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 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 efêmeros:
- 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 cenários a seguir, é 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: caso sua organização exija controle centralizado sobre as políticas de criação e gerenciamento de clusters, clusters 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, você precisa definir o 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 trabalho na sua cluster. O Dataproc ainda pode escalonar automaticamente esse número com base carga de trabalho do Google Cloud.
- Zona: selecione a zona do Google Cloud do cluster. O local pode afetar a localização dos dados e o desempenho da rede.
- Configurações adicionais: é possível definir opções avançadas para os um cluster estático, como configurações de preempção, de rede e ações 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 |
Mantém os 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 contêineres se
vão além da memória física. Valor recomendado: false |
yarn.nodemanager.vmem-check-enabled |
Permite que o YARN verifique os limites de memória virtual e elimine contêineres se
vão 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 à conexão pooling ou pool de linhas de execução. Qualquer cluster é mantido em execução por um período após o término da execução. Quando uma nova execução é iniciada, ele tenta encontrar um cluster inativo 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 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 se estiver ocioso.
- Se você ativar a reutilização de clusters para todas as execuções, o número necessário de clusters para processar todas as execuções serão criados 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 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, você terá até sete clusters em um determinado momento.
Os clusters são reutilizados entre diferentes pipelines assim que eles são usam o mesmo perfil e compartilham as mesmas configurações de perfil. Se o perfil a personalização for usada, os clusters ainda serão reutilizados, mas apenas se são exatamente as mesmas, incluindo todas as configurações de cluster, como e rotulação de clusters.
Quando a reutilização de clusters é ativada, há duas considerações de custo principais:
- 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 o 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 encadeados 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 do Compute" 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 de tempo máximo de inatividade, mais clusters ficam inativos, prontos para a 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 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 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, o SO precisa ser compatível com um dos componentes para o Cloud Data Fusion na tabela anterior.
Solução de problemas: contêiner fechado 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 argumento de ambiente de execução de exemplo a seguir define
a 4.096 MB:
"task.executor.system.resources.memory": 4096
Para mais informações, consulte Dimensionamento de cluster.