Solução de problemas de conectividade do metastore do Dataproc

Nesta página, você encontra orientações sobre como diagnosticar e resolver problemas comuns de conectividade ao conectar clusters do Dataproc ou cargas de trabalho do Dataproc sem servidor a um serviço gerenciado do metastore do Dataproc.

Sintomas e mensagens de erro comuns

Quando o Dataproc encontra problemas de conectividade com o metastore do Dataproc, podem aparecer erros como:

  • Unable to connect to Hive Metastore
  • Connection refused
  • Host unreachable
  • javax.jdo.JDOException ou erros semelhantes de conexão com o banco de dados
  • Erros de tempo limite ao tentar listar bancos de dados ou tabelas ou ao enviar jobs do Spark ou do Hive que interagem com o metastore.

Causas comuns e etapas de solução de problemas

Nesta seção, descrevemos os motivos comuns para problemas de conectividade do metastore do Dataproc e fornecemos etapas específicas de solução de problemas para cada um deles.

1. Problemas de configuração de rede

As configurações incorretas de rede são a causa mais frequente de falhas de conectividade entre as cargas de trabalho do Dataproc e o metastore do Dataproc.

  • Peering de rede da nuvem privada virtual ou acesso a serviços particulares:

    • Normalmente, as instâncias do metastore do Dataproc são acessadas usando um intervalo de endereços IP particulares com uma conexão de peering de rede de nuvem privada virtual (especificamente, acesso a serviços particulares).
    • Verificar o status do peering:verifique se a conexão de peering de nuvem privada virtual entre a rede de nuvem privada virtual da carga de trabalho do Dataproc e a rede do produtor de serviços do metastore do Dataproc está ativa e íntegra. Você pode verificar isso no console doGoogle Cloud em Rede VPC > Peering de rede VPC.
    • Alocação de intervalo de IP:confirme se um intervalo de IP suficiente foi alocado para o acesso a serviços particulares na sua rede de nuvem privada virtual.
  • Regras de firewall:

    • Verifique se as regras de firewall na rede de nuvem privada virtual da carga de trabalho do Dataproc permitem o tráfego de saída na porta usada pelo metastore do Dataproc (o padrão é 9083).
    • Verifique se não há regras de entrada muito 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 se o nome do host do endpoint do metastore (por exemplo, your-metastore-endpoint.us-central1.dataproc.cloud.google.com) seja resolvido corretamente para um endereço IP particular do cluster do Dataproc ou do ambiente sem servidor do Dataproc.
    • Problemas com zonas particulares do Cloud DNS ou encaminhamento de DNS podem causar falhas de resolução.

Etapas de solução de problemas (rede):

  1. Verifique as informações de conectividade do metastore do Dataproc:
    • No console Google Cloud , navegue até Metastore do Dataproc e selecione sua instância.
    • Anote o URI do endpoint e a rede a que ele está conectado.
  2. Verifique o peering de nuvem privada virtual ou o acesso a serviços particulares:
    • Acesse Rede VPC > Peering de rede VPC. Confirme se a conexão de peering com servicenetworking-googleapis-com é ACTIVE.
  3. Use os testes de conectividade:use os testes de conectividade do Google Cloudpara diagnosticar o caminho de rede de uma VM do Compute Engine na sub-rede da sua carga de trabalho do Dataproc até o endereço IP e a porta do endpoint do metastore do Dataproc.
  4. Verifique os registros de firewall:se houver suspeita de regras de firewall, analise os registros do Cloud Firewall para conexões negadas.

2. Permissões do IAM

A conta de serviço usada pela sua carga de trabalho do Dataproc precisa ter os papéis do IAM adequados para acessar o metastore do Dataproc.

  • Papel necessário:a conta de serviço precisa ter o papel Usuário do Dataproc Metastore (roles/datametastore.user) na instância ou no projeto do Dataproc Metastore.
  • Permissões do agente de serviço:verifique se o agente de serviço do Dataproc tem permissões suficientes se o Dataproc estiver acessando implicitamente o metastore.

Etapas de solução de problemas (IAM):

  1. Identifique a conta de serviço:determine a conta de serviço usada pelo seu cluster do Dataproc ou lote do Dataproc sem servidor.
  2. Verificar papéis do IAM:acesse IAM e administrador > IAM no console do Google Cloud . Verifique os papéis atribuídos à conta de serviço no projeto ou na instância do metastore do Dataproc. Conceda roles/datametastore.user se ele estiver ausente.
  3. Para mais detalhes sobre a configuração da conta de serviço, consulte:

3. Configuração incorreta do endpoint

A carga de trabalho do Dataproc precisa ser configurada com o URI de endpoint correto do metastore do Dataproc.

Etapas de solução de problemas (endpoint):

  1. Verifique o URI do endpoint:confira novamente a propriedade hive.metastore.uris do Spark ou qualquer outra configuração usada para especificar o endpoint do metastore do Dataproc no envio da carga de trabalho. Verifique se ele corresponde ao URI do endpoint nos detalhes da instância do metastore do Dataproc.

4. Outras considerações

  • Status do metastore:verifique se a instância do metastore do Dataproc está no estado HEALTHY no console do Google Cloud . Se ele estiver em um estado não íntegro, resolva primeiro os problemas internos do metastore.
  • Compatibilidade de versão:embora seja raro, verifique se não há problemas de compatibilidade conhecidos entre a versão da imagem do Dataproc e a versão do metastore do Dataproc.
  • Proxy SQL x serviço gerenciado:se você estiver usando o Cloud SQL como um Metastore com a ação de inicialização cloud-sql-proxy.sh, consulte a solução de problemas específica no README da ação de inicialização do proxy do Cloud SQL.

A seguir