Esta página fornece orientações sobre o diagnóstico e a resolução de problemas de conetividade comuns ao ligar clusters do Dataproc ou cargas de trabalho sem servidor do Dataproc a um serviço Dataproc Metastore gerido.
Mensagens de erro e sintomas comuns
Quando o Dataproc encontra problemas de conetividade com o Dataproc Metastore, pode ver erros como:
Unable to connect to Hive Metastore
Connection refused
Host unreachable
javax.jdo.JDOException
ou erros de ligação à base de dados semelhantes- Erros de tempo limite ao tentar listar bases de dados ou tabelas, ou ao enviar tarefas do Spark ou do Hive que interagem com o Metastore.
Causas comuns e passos de resolução de problemas
Esta secção descreve os motivos comuns pelos quais ocorrem problemas de conetividade do Dataproc Metastore e fornece passos de resolução de problemas específicos para cada um.
1. Problemas de configuração de rede
As configurações incorretas da rede são a causa mais frequente de falhas de conetividade entre as cargas de trabalho do Dataproc e o Dataproc Metastore.
Interligação de redes da nuvem privada virtual ou acesso a serviços privados:
- Normalmente, as instâncias do Dataproc Metastore são acedidas através de um intervalo de endereços IP privados com uma ligação de peering de rede de nuvem privada virtual (especificamente, acesso privado a serviços).
- Verifique o estado do intercâmbio: verifique a ligação de intercâmbio da nuvem virtual privada entre a rede da nuvem virtual privada da carga de trabalho do Dataproc e a rede do produtor de serviços do Dataproc Metastore está ativa e em bom estado. Pode verificar esta situação na Google Cloud consola em Rede da VPC > Intercâmbio da rede da VPC.
- Atribuição de intervalo de IP: confirme se foi atribuído um intervalo de IP suficiente para o acesso a serviços privados na sua rede de nuvem privada virtual.
Regras de firewall:
- Verifique se as regras de firewall na rede de nuvem virtual privada da carga de trabalho do Dataproc permitem tráfego de saída na porta usada pelo Dataproc Metastore (a predefinição é 9083).
- Verifique se não existem regras de entrada excessivamente restritivas no lado da rede do produtor de serviços que bloqueiem o tráfego da sua carga de trabalho do Dataproc.
Resolução de DNS:
- Confirme que o nome de anfitrião do ponto final do Metastore (por exemplo,
your-metastore-endpoint.us-central1.dataproc.cloud.google.com
) resolve corretamente para um endereço IP privado a partir do seu cluster do Dataproc ou ambiente sem servidor do Dataproc. - Os problemas com as zonas privadas do Cloud DNS ou o encaminhamento de DNS podem causar falhas de resolução.
- Confirme que o nome de anfitrião do ponto final do Metastore (por exemplo,
Passos de resolução de problemas (rede):
- Verifique as informações de conetividade do Dataproc Metastore:
- Na Google Cloud consola, navegue para Dataproc Metastore e selecione a sua instância.
- Tome nota do URI do ponto final e da rede à qual está ligado.
- Valide o peering da nuvem privada virtual ou o acesso privado ao serviço:
- Aceda a Rede de VPC > Intercâmbio da rede de VPC. Confirme que a ligação de peering a
servicenetworking-googleapis-com
estáACTIVE
.
- Aceda a Rede de VPC > Intercâmbio da rede de VPC. Confirme que a ligação de peering a
- Use testes de conetividade: use os testes de conetividade da Google Cloud's para diagnosticar o caminho de rede de uma VM do Compute Engine na sub-rede da carga de trabalho do Dataproc para o endereço IP e a porta do ponto final do Dataproc Metastore.
- Verifique os registos da firewall: se suspeitar de regras de firewall, analise os registos da firewall na nuvem para ver ligações recusadas.
2. Autorizações de IAM
A conta de serviço usada pela sua carga de trabalho do Dataproc precisa de funções de IAM adequadas para aceder ao Dataproc Metastore.
- Função necessária: a conta de serviço tem de ter a função
Utilizador do Dataproc Metastore (
roles/datametastore.user
) na instância ou no projeto do Dataproc Metastore. - Autorizações do agente de serviço: verifique se o agente de serviço do Dataproc tem autorizações suficientes se o Dataproc estiver a aceder implicitamente ao Metastore.
Passos de resolução de problemas (IAM):
- Identifique a conta de serviço: determine a conta de serviço usada pelo cluster do Dataproc ou pelo lote sem servidor do Dataproc.
- Verifique as funções do IAM: aceda a IAM e administrador > IAM na Google Cloud consola.
Verifique as funções atribuídas à conta de serviço no projeto ou na instância do Dataproc Metastore. Conceda
roles/datametastore.user
se estiver em falta. - Para mais detalhes sobre a configuração da conta de serviço, consulte:
3. Configuração do ponto final incorreta
A carga de trabalho do Dataproc tem de ser configurada com o URI do ponto final do Dataproc Metastore correto.
Passos de resolução de problemas (ponto final):
- Verifique o URI do ponto final: verifique novamente a propriedade do
hive.metastore.uris
Spark ou qualquer outra configuração usada para especificar o ponto final do Dataproc Metastore no envio da carga de trabalho. Verifique se corresponde ao URI do ponto final dos detalhes da instância do Dataproc Metastore.
4. Outras considerações
- Estado do metastore: verifique se a instância do Dataproc Metastore está no estado
HEALTHY
na consola Google Cloud . Se não estiver em bom estado, resolva primeiro os problemas internos do Metastore. - Compatibilidade de versões: embora seja raro, verifique se existem problemas de compatibilidade conhecidos entre a versão da imagem do Dataproc e a versão do Dataproc Metastore.
- Proxy SQL versus serviço gerido: se estiver a usar o Cloud SQL como um
Metastore através da ação de inicialização
cloud-sql-proxy.sh
, consulte a respetiva resolução de problemas específica no README da ação de inicialização do proxy do Cloud SQL.
O que se segue?
- Reveja a documentação do Dataproc Metastore.
- Consulte os cenários de erro de conetividade e rede.
- Consulte os guias gerais de resolução de problemas de rede: