Neste documento, discutimos as práticas recomendadas do Serviço Gerenciado para Apache Spark que podem ajudar você a executar jobs de processamento de dados confiáveis, eficientes e detalhados em clusters do Serviço Gerenciado para Apache Spark em ambientes de produção.
Especificar versões de imagem do cluster
O Serviço Gerenciado para Apache Spark usa versões de imagem para agrupar o sistema operacional, os componentes de Big Data e os 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 Serviço Gerenciado para Apache Spark vai usar por 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
major.minor Serviço Gerenciado para Apache Spark, 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 secundária mais recente
(2.0 é resolvido para 2.0.x). Observação: se você precisar de uma versão secundária específica 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 imagem de pré-lançamento do Serviço Gerenciado para Apache Spark
Novas versões secundárias de imagens do Serviço Gerenciado para Apache Spark
estão disponíveis em uma versão preview antes do lançamento
na faixa de versão secundária padrão. Use uma imagem de pré-lançamento
para testar e validar seus jobs em uma nova versão secundária de imagem
antes de adotar a versão secundária padrão na produção.
Consulte Controle de versões do Serviço Gerenciado para Apache Spark
para mais informações.
Usar imagens personalizadas quando necessário
Se você tiver dependências para adicionar ao cluster, como bibliotecas nativas do Python, ou software de proteção contra vírus ou proteção de segurança, crie uma imagem personalizada com base na imagem mais recente na faixa de versão de imagem secundária de destino. Essa prática permite que você atenda 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 secundária mais recente disponível na faixa de imagem secundária.
Enviar jobs para o Serviço Gerenciado para Apache Spark
Envie jobs para o Serviço Gerenciado para Apache Spark com uma chamada jobs.submit usando a CLI gcloud ou o console do Google Cloud . Defina as permissões de job e cluster concedendo papéis do Serviço Gerenciado para Apache Spark. 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 Gerenciado para Apache Spark:
- Não é necessário fazer configurações de rede complicadas, já que a API é amplamente acessível.
- Permissões e papéis do IAM fáceis de gerenciar
- Acompanhe o status do job com facilidade, sem metadados do job do Serviço Gerenciado para Apache Spark 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. O envio
de um uber jar para
o Spark ou o MapReduce é uma maneira comum de fazer isso.
- Exemplo: se um jar de job depender de
args4jespark-sql, comargs4jespecífico para o job espark-sqluma dependência no nível do cluster, agrupeargs4jno uber jar do job.
Controlar locais de ações de inicialização
As ações de inicialização permitem executar scripts ou instalar componentes automaticamente ao criar um cluster do Serviço Gerenciado para Apache Spark. Consulte o repositório do GitHub dataproc-initialization-actions para ver ações de inicialização comuns do Serviço Gerenciado para Apache Spark. 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 usar 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 da versão do Serviço Gerenciado para Apache Spark
O Serviço Gerenciado para Apache Spark lança regularmente novas versões de imagem secundárias. Acesse ou assine as notas da versão do Serviço Gerenciado para Apache Spark para ficar por dentro das versões mais recentes de imagens do Serviço Gerenciado para Apache Spark e de outros comunicados, mudanças e correções.
Ver o bucket de preparo para investigar falhas
Analise o bucket de preparo do cluster para investigar as mensagens de erro do cluster e do job. Normalmente, o local do bucket de preparo do Cloud Storage é mostrado em mensagens de erro, como mostrado no texto em negrito no exemplo de mensagem de erro a seguir:
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
OGoogle Cloud oferece suporte às cargas de trabalho de OSS de produção e ajuda você a cumprir os SLAs de negócios com níveis de suporte. Além disso, os Google Cloud Serviços de Consultoria podem fornecer orientações sobre as práticas recomendadas para as implantações de produção da sua equipe.
Para mais informações
Leia o Google Cloud guia de práticas recomendadas do Serviço Gerenciado para Apache Spark no blog.
Assista Democratização do Serviço Gerenciado para Apache Spark no YouTube.