Este documento aborda as práticas recomendadas do Dataproc que podem ajudar a executar tarefas de processamento de dados fiáveis, eficientes e detalhadas em clusters do Dataproc em ambientes de produção.
Especifique as versões das imagens do cluster
O Dataproc usa versões de imagens para agrupar o sistema operativo, os componentes de Big Data e os Google Cloud conetores num pacote implementado num cluster. Se não especificar uma versão da imagem ao criar um cluster, o Dataproc usa por predefinição a versão da imagem estável mais recente.
Para ambientes de produção, associe o cluster a uma versão de imagem do Dataproc específica, conforme mostrado no seguinte comando da CLI gcloud.major.minor
gcloud dataproc clusters create CLUSTER_NAME \ --region=region \ --image-version=2.0
O Dataproc resolve a versão major.minor
para a versão sub-minor mais recente (2.0
é resolvida para 2.0.x
). Nota: se precisar de usar uma versão sub-minor específica para o seu cluster,
pode especificá-la: por exemplo, --image-version=2.0.x
. Consulte o artigo
Como funciona o controlo de versões para
mais informações.
Versões de imagens de pré-visualização do Dataproc
As novas versões secundárias das imagens do Dataproc estão disponíveis numa versão preview
antes do lançamento
na faixa de versão de imagem secundária padrão. Use uma imagem de pré-visualização
para testar e validar as suas tarefas com uma nova versão secundária da imagem
antes de adotar a versão secundária padrão da imagem em produção.
Consulte o artigo Criação de versões do Dataproc
para mais informações.
Use imagens personalizadas quando necessário
Se tiver dependências para adicionar ao cluster, como bibliotecas Python nativas ou software de proteção contra vírus ou reforço da segurança, crie uma imagem personalizada a partir da imagem mais recente na faixa de versão de imagem secundária de destino. Esta prática permite-lhe cumprir os requisitos de dependência quando cria clusters com a sua imagem personalizada. Quando recompilar a imagem personalizada para atualizar os requisitos de dependência, use a versão de imagem sub-minor mais recente disponível na faixa de imagem minor.
Envie tarefas para o serviço Dataproc
Envie tarefas para o serviço Dataproc com uma chamada jobs.submit através da CLI gcloud ou da Google Cloud consola. Defina autorizações de tarefas e clusters concedendo funções do Dataproc. Use funções personalizadas para separar o acesso ao cluster das autorizações de envio de tarefas.
Vantagens do envio de tarefas para o serviço Dataproc:
- Não são necessárias definições de rede complicadas. A API é amplamente acessível
- Fácil de gerir funções e autorizações IAM
- Monitorize facilmente o estado das tarefas, sem metadados de tarefas do Dataproc que compliquem os resultados.
Em produção, execute tarefas que dependam apenas de dependências ao nível do cluster numa versão de imagem secundária fixa (por exemplo, --image-version=2.0
). Agrupe as dependências com as tarefas quando estas forem enviadas. O envio de um uber jar para o Spark ou o MapReduce é uma forma comum de o fazer.
- Exemplo: se um contentor de tarefas depender de
args4j
espark-sql
, comargs4j
específico da tarefa espark-sql
uma dependência ao nível do cluster, agrupeargs4j
no contentor uber da tarefa.
Controle as localizações das ações de inicialização
As ações de inicialização permitem-lhe executar automaticamente scripts ou instalar componentes quando cria um cluster do Dataproc (consulte o repositório do GitHub dataproc-initialization-actions para ações de inicialização comuns do Dataproc). Quando usar ações de inicialização de clusters num ambiente de produção, copie os scripts de inicialização para o Cloud Storage em vez de os obter a partir de um repositório público. Esta prática evita a execução de scripts de inicialização sujeitos a modificação por parte de outras pessoas.
Monitorize as notas de lançamento do Dataproc
O Dataproc lança regularmente novas versões secundárias das imagens. Veja ou subscreva as notas de lançamento do Dataproc para estar a par dos lançamentos mais recentes da versão da imagem do Dataproc e de outros anúncios, alterações e correções.
Veja o contentor de preparação para investigar falhas
Consulte o contentor de preparação do cluster para investigar mensagens de erro do cluster e da tarefa. Normalmente, a localização do contentor de preparação do Cloud Storage é apresentada nas mensagens de erro, conforme mostrado no texto a negrito na seguinte mensagem de erro de exemplo:
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 ver o conteúdo do contentor 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
Obter apoio técnico
Google Cloud Suporta as suas cargas de trabalho de OSS de produção e ajuda a cumprir os SLAs empresariais através de níveis de apoio técnico. Além disso, Google Cloud os serviços de consultoria podem fornecer orientações sobre as práticas recomendadas para as implementações de produção da sua equipa.
Para obter mais informações
Leia o Google Cloud blogue Guia de práticas recomendadas do Dataproc.
Veja o vídeo Democratizing Dataproc no YouTube.