Práticas recomendadas do Dataproc para produção

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 e spark-sql, com args4j específico da tarefa e spark-sql uma dependência ao nível do cluster, agrupe args4j 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

  1. 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
     

  2. Use a CLI gcloud para ver o conteúdo do contentor 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
    

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