Neste documento, discutimos as práticas recomendadas do Dataproc que podem ajudar a executar jobs de processamento de dados confiáveis, eficientes e cheios de insights nos 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 que é implantado em um cluster. Se você não especificar uma versão de imagem ao criar um cluster, o Dataproc usará como padrão a versão de imagem estável mais recente.
Para ambientes de produção, associe o cluster a uma
versão de imagem específica do Dataproc major.minor
, conforme
mostrado no seguinte comando da CLI gcloud.
gcloud dataproc clusters create CLUSTER_NAME \ --region=region \ --image-version=2.0
O Dataproc resolve a versão major.minor
para a versão subsecundária mais recente
(2.0
é resolvido para 2.0.x
). Observação: se você precisar depender de uma versão subsecundária específica para seu 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 visualização do Dataproc
Novas versões secundárias de imagens do Dataproc estão disponíveis em uma versão preview
antes do lançamento na faixa de versão de imagem secundária padrão. Use uma imagem de visualização
para testar e validar os jobs em relação a uma nova versão de imagem secundária
antes de adotar a versão de imagem secundária padrão na produção.
Para mais informações, consulte Controle de versões do Dataproc.
Use imagens personalizadas quando necessário
Se você tiver dependências para adicionar ao cluster, como bibliotecas Python nativas ou software de proteção contra vírus ou aumento da proteção de segurança, crie uma imagem personalizada a partir da imagem mais recente na faixa da versão de 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 de imagem subsecundária mais recente disponível na faixa de imagem secundária.
Enviar jobs ao serviço Dataproc
Envie jobs ao serviço do Dataproc com uma chamada jobs.submit usando a CLI gcloud ou o console do Google Cloud. Definir permissões de jobs e clusters concedendo papéis do Dataproc. Use papéis personalizados para separar o acesso ao cluster das permissões de envio do job.
Benefícios de enviar jobs para o serviço Dataproc:
- Não são necessárias configurações de rede complicadas, já que a API tem alcance amplo
- É fácil gerenciar permissões e papéis do IAM.
- Acompanhe o status do job com facilidade. Não há metadados de jobs no 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 fixa de imagem secundária (por exemplo, --image-version=2.0
). Agrupe
dependências com os jobs quando os jobs forem enviados. O envio de um Uber jar para o Spark ou o MapReduce é uma maneira comum de fazer isso.
- Exemplo: se um jar de jobs depender de
args4j
espark-sql
, comargs4j
específico para o job espark-sql
de uma dependência no nível do cluster, agrupeargs4j
no uber jar do job.
Controlar os locais de ação de inicialização
Com as ações de inicialização, é possível executar scripts ou instalar componentes automaticamente quando você cria um cluster do Dataproc. Consulte o repositório do GitHub dataproc-initialization-actions para ver as ações comuns de inicialização 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 fornecê-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.
Monitorar as notas de lançamento do Dataproc
O Dataproc lança novas versões de imagens subsecundárias regularmente. Veja ou inscreva-se nas Notas de lançamento do Dataproc para conhecer as versões mais recentes da versão de imagem do Dataproc e outros anúncios, alterações e correções.
Veja o bucket de preparo para investigar falhas
Confira o bucket de preparo do cluster para investigar mensagens de erro de cluster e job. Normalmente, o local do Cloud Storage do bucket de preparação é mostrado em mensagens de erro, conforme mostrado no texto em negrito no seguinte exemplo de mensagem de erro:
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
gsutil
para visualizar o conteúdo do bucket de preparo:gsutil cat gs://STAGING_BUCKET
Exemplo de resposta:+ readonly RANGER_VERSION=1.2.0 ... Ranger admin password not set. Please use metadata flag - default-password
Receba ajuda
O Google Cloud oferece suporte às suas cargas de trabalho de OSS de produção e ajuda você a atender aos SLAs empresariais por meio de 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.
Veja Como democratizar o Dataproc no YouTube.