Resolução de problemas de conetividade do Dataproc Metastore

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.

Passos de resolução de problemas (rede):

  1. 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.
  2. 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.
  3. 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.
  4. 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):

  1. Identifique a conta de serviço: determine a conta de serviço usada pelo cluster do Dataproc ou pelo lote sem servidor do Dataproc.
  2. 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.
  3. 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):

  1. Verifique o URI do ponto final: verifique novamente a propriedade do hive.metastore.urisSpark 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?