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.
- Confirme se o nome do host do endpoint do metastore (por exemplo,
Etapas de solução de problemas (rede):
- 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.
- 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
.
- Acesse Rede VPC > Peering de rede VPC. Confirme se a conexão de peering com
- 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.
- 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):
- Identifique a conta de serviço:determine a conta de serviço usada pelo seu cluster do Dataproc ou lote do Dataproc sem servidor.
- 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. - 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):
- 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
- Leia a documentação do metastore do Dataproc.
- Consulte Cenários de erro de rede e conectividade.
- Consulte os guias gerais de solução de problemas de rede: