Práticas recomendadas do Dataproc para produção

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 da imagem do cluster

O Dataproc usa versões de imagem agrupar sistemas operacionais, componentes de Big Data, e 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 o padrão é a versão de imagem estável mais recente.

Para ambientes de produção, associe o cluster a um major.minor Versão de imagem 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 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 imagens de visualização do Dataproc

Novas versões secundárias do Dataproc as imagens estão disponíveis em uma versão preview anterior ao lançamento na faixa de versão de imagem 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 sua imagem personalizada. Quando você recriar sua imagem personalizada para atualize os requisitos de dependência, use a versão de imagem subsecundária mais recente disponível na faixa da imagem secundária.

Enviar jobs para o serviço Dataproc

Envie jobs para o serviço Dataproc com um jobs.submit usando o método CLI gcloud ou o console do Google Cloud. Defina 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 trabalhos.

Benefícios do envio de jobs para o serviço Dataproc:

  • Não são necessárias configurações de rede complicadas. A API pode ser acessada de várias maneiras.
  • Permissões e papéis do IAM fáceis de gerenciar
  • 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 do nível do cluster dependências em uma versão de imagem secundária fixa, (por exemplo, --image-version=2.0). Agrupamento dependências com jobs quando eles forem enviados. Enviar um jar do Uber para o Spark ou o MapReduce é uma maneira comum de fazer isso.

  • Exemplo: se um jar do job depende de args4j e spark-sql, com args4j específico para o job e spark-sql uma dependência no nível do cluster, agrupe args4j no uber jar do job.

Controlar os locais de ação de inicialização

Ações de inicialização permitem que você execute scripts ou instale componentes ao criar um cluster do Dataproc (consulte a dataproc-initialization-actions repositório do GitHub para 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 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.

Monitorar as notas de lançamento do Dataproc

O Dataproc lança regularmente novas versões de imagens subsecundárias. 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

  1. Observe o bucket de preparo para investigar mensagens de erro de cluster e job. Normalmente, o local do Cloud Storage do bucket de preparo é mostrado em de erro conforme exibido em negrito no exemplo de erro a seguir mensagem:

    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
     

  2. Use a CLI gcloud para conferir o conteúdo do bucket de preparação:

    gcloud storage cat gs://STAGING_BUCKET
    
    Exemplo de saída:
    + readonly RANGER_VERSION=1.2.0
    ... Ranger admin password not set. Please use metadata flag - default-password
    

Receber suporte

O Google Cloud oferece suporte às suas cargas de trabalho OSS de produção e ajuda você a atender SLAs comerciais pelos 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