Configuração do cluster do Dataproc

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**

* Cloud Data Fusion versão 6.4 ou mais recente são compatíveis com com suporte do Dataproc. A menos que recursos específicos do SO forem necessários, a prática recomendada é especificar Versão da imagem 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.

** As versões 6.1 a 6.6 do Cloud Data Fusion são compatível com sem suporte à versão 1.3 do Dataproc.

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.

A seguir