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 sistemas operacionais, componentes de Big Data, e Google Cloud conectores em um pacote implantado em um cluster. Se você não especificar uma versão de imagem ao criar um cluster, o Dataproc vai 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 de imagem específica
major.minor do 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 sub-minor mais recente
(2.0 é resolvida para 2.0.x). Observação: se você precisar usar uma versão sub-minor específica para o cluster,
poderá especificá-la. Por exemplo, --image-version=2.0.x. Consulte
Como o controle de versões funciona 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 seus 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.
Consulte Controle de versões do Dataproc
para mais informações.
Usar imagens personalizadas quando necessário
Se você tiver dependências a serem adicionadas ao cluster, como bibliotecas nativas do Python ou software de proteção contra vírus ou reforço de segurança, crie uma imagem personalizada com a imagem mais recente na faixa de versão de imagem secundária de destino. Essa prática permite atender aos requisitos de dependência ao criar clusters usando sua imagem personalizada. Ao recriar 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 secundária.
Enviar jobs para o serviço do Dataproc
Envie jobs para o serviço do Dataproc com uma jobs.submit usando a CLI gcloud ou o Google Cloud console. Defina as permissões de job e cluster concedendo papéis do Dataproc. Use papéis personalizados para separar o acesso ao cluster das permissões de envio de jobs.
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.
- Permissões e papéis do IAM fáceis de gerenciar
- Status do job fácil de acompanhar. Não há metadados de job 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 de imagem secundária fixa (por exemplo, --image-version=2.0). Agrupe
as dependências com os jobs quando eles forem enviados. Enviar
um arquivo JAR uber para
o Spark ou MapReduce é uma maneira comum de fazer isso.
- Exemplo: se um arquivo JAR de job depender de
args4jespark-sql, comargs4jespecífico para o job espark-sqluma dependência no nível do cluster, agrupeargs4jno arquivo JAR uber do job.
Controlar 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 dataproc-initialization-actions do GitHub para 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 buscá-los em um repositório público. Essa prática evita a execução de scripts de inicialização sujeitos a modificação por outras pessoas.
Monitorar as notas de lançamento do Dataproc
O Dataproc lança regularmente novas versões de imagem sub-minor. Consulte ou inscreva-se nas notas de lançamento do Dataproc para ficar ciente dos lançamentos mais recentes da versão de imagem do Dataproc e de outros anúncios, mudanças e correções.
Conferir 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 bucket de preparo do Cloud Storage é mostrado em mensagens de erro, conforme mostrado no texto em 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 conferir o conteúdo do bucket de preparo:
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
Google Cloud oferece suporte às cargas de trabalho de OSS de produção e ajuda você a atender aos SLAs de negócios por níveis de suporte. Além disso, Google Cloud os Serviços de consultoria podem fornecer orientações sobre as práticas recomendadas para as implantações de produção da sua equipe.
Para saber mais
Leia o Google Cloud blog guia de práticas recomendadas do Dataproc.
Assista Democratizing Dataproc no YouTube.