Este documento discute as práticas recomendadas do Dataproc que podem ajudar você a executar jobs de processamento de dados confiáveis, eficientes e informativos em clusters do Dataproc em ambientes de produção.
Especificar versões de imagem do cluster
O Dataproc usa versões de imagem para agrupar o sistema operacional, os componentes de Big Data e os conectores do Google Cloud em um pacote implantado em um cluster. Se você não especificar uma versão de imagem ao criar um cluster, o Dataproc usará a versão de imagem estável mais recente por padrão.
Para ambientes de produção, associe o cluster a uma versão específica da imagem do major.minor
Dataproc, conforme mostrado no comando da CLI gcloud a seguir.
gcloud dataproc clusters create CLUSTER_NAME \ --region=region \ --image-version=2.0
O Dataproc resolve a versão major.minor
para a versão mais recente da subversão
(2.0
é resolvido para 2.0.x
). Observação: se você precisar usar uma versão específica da subversão para o cluster,
especifique-a: por exemplo, --image-version=2.0.x
. Consulte
Como funciona o controle de versões para
mais informações.
Versões de imagem de pré-visualização do Dataproc
As novas versões secundárias das imagens do Dataproc
estão disponíveis em uma versão preview
antes do lançamento
na faixa de versão secundária padrão. Use uma imagem de pré-visualização
para testar e validar seus jobs em relação a uma nova versão secundária de imagem
antes de adotar a versão padrão da imagem secundária na produção.
Consulte Controle de versões do Dataproc
para mais informações.
Use imagens personalizadas quando necessário
Se você tiver dependências para adicionar ao cluster, como bibliotecas nativas do Python ou softwares de proteção contra vírus ou de aumento da segurança, crie uma imagem personalizada a partir da imagem mais recente na faixa de versão da imagem secundária de destino. Essa prática permite atender aos requisitos de dependência ao criar clusters usando a imagem personalizada. Ao recriar a imagem personalizada para atualizar os requisitos de dependência, use a versão subsecundária mais recente disponível na faixa de imagem secundária.
Enviar jobs para o serviço do Dataproc
Envie jobs para o serviço do Dataproc com uma chamada jobs.submit usando a CLI gcloud ou o console do Google Cloud. Defina as permissões de job e cluster concedendo funções do Dataproc. Use papéis personalizados para separar o acesso ao cluster das permissões de envio de trabalhos.
Benefícios de enviar jobs para o serviço do Dataproc:
- Não são necessárias configurações de rede complicadas, a API é amplamente acessível.
- Gerenciamento fácil de permissões e papéis do IAM
- Acompanhe o status do job com facilidade, sem metadados de jobs do Dataproc para complicar os resultados.
Na produção, execute jobs que dependem apenas de dependências
no nível do cluster em uma versão secundária fixa da imagem (por exemplo, --image-version=2.0
). Junte
as dependências com os jobs quando eles forem enviados. Enviar
um uber jar para
o Spark ou o MapReduce é uma maneira comum de fazer isso.
- Exemplo: se um jar do job depender de
args4j
espark-sql
, comargs4j
específico para o job espark-sql
uma dependência no nível do cluster, empacoteargs4j
no jar uber do job.
Controlar os locais de ação de inicialização
As ações de inicialização permitem executar scripts ou instalar componentes automaticamente ao criar um cluster do Dataproc. Consulte o repositório do GitHub dataproc-initialization-actions para ver ações de inicialização comuns do Dataproc. Ao usar ações de inicialização de cluster em um ambiente de produção, copie os scripts de inicialização para o Cloud Storage em vez de extraí-los de um repositório público. Essa prática evita a execução de scripts de inicialização que estão sujeitos a modificações por outras pessoas.
Notas de lançamento do Monitor Dataproc
O Dataproc lança novas versões de imagem submenores regularmente. Confira ou inscreva-se nas notas de lançamento do Dataproc para saber das versões mais recentes da imagem do Dataproc e de outros avisos, mudanças e correções.
Conferir o bucket de preparação para investigar falhas
Analise o bucket de preparação do cluster para investigar as mensagens de erro do cluster e do job. Normalmente, o local do bucket de preparação do Cloud Storage é mostrado em mensagens de erro, como mostrado no texto em negrito no exemplo de mensagem de erro a seguir:
ERROR: (gcloud.dataproc.clusters.create) Operation ... failed: ... - Initialization action failed. Failed action ... see output in: gs://dataproc-<BUCKETID>-us-central1/google-cloud-dataproc-metainfo/CLUSTERID/<CLUSTER_ID>\dataproc-initialization-script-0_output
Use a CLI gcloud para conferir o conteúdo do bucket de preparação:
Exemplo de saída:gcloud storage cat gs://STAGING_BUCKET
+ readonly RANGER_VERSION=1.2.0 ... Ranger admin password not set. Please use metadata flag - default-password
Receber suporte
O Google Cloud oferece suporte para cargas de trabalho de OSS de produção e ajuda você a atender aos SLAs de negócios com os níveis de suporte. Além disso, os Serviços de consultoria do Google Cloud podem fornecer orientações sobre as práticas recomendadas para implantações de produção da sua equipe.
Para mais informações
Leia o guia de práticas recomendadas do Dataproc no blog do Google Cloud.
Assista Democratização do Dataproc no YouTube.