Configuração do cluster do Dataproc

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

* As versões 6.4 e mais recentes do Cloud Data Fusion são compatíveis com as versões compatíveis do Dataproc. A menos que recursos específicos do SO sejam necessários, a prática recomendada é especificar a versão de imagem 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.

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

A seguir