Esta página oferece orientações sobre como diagnosticar e resolver problemas comuns de conectividade de rede para cargas de trabalho em lote e sessões interativas do Serverless para Apache Spark. Esses problemas podem impedir que as cargas de trabalho acessem as fontes de dados necessárias, serviços externos ou Google Cloud APIs.
Sintomas e mensagens de erro comuns
Quando o Serverless para Apache Spark encontra problemas de conectividade, podem ocorrer erros como:
Unable to connect to service_name.googleapis.comCould not reach required Google APIsConnection refusedHost unreachableOperation timed outPermission denied(geralmente relacionado à rede se bloquear chamadas de API)
Também podem ocorrer erros relacionados ao acesso a dados no Cloud Storage, no BigQuery ou em outros bancos de dados.
Causas comuns e dicas de solução de problemas
Esta seção lista as causas comuns de problemas de conectividade do Serverless para Apache Spark e oferece dicas de solução de problemas para ajudar você a resolvê-los.
Configuração de rede
Configurações incorretas de rede são uma causa frequente de falhas de conectividade. As cargas de trabalho e sessões do Serverless para Apache Spark são executadas em VMs com endereços IP internos, com Acesso Privado do Google (PGA) ativado automaticamente na sub-rede da carga de trabalho ou da sessão para acessar APIs e serviços do Google. Para mais informações, consulte Configuração de rede do Serverless para Apache Spark.
Opções de acesso:
Private Service Connect (PSC): é possível criar endpoints particulares na sua rede VPC para acessar APIs específicas do Google.
- No Google Cloud console do, acesse
Private Service Connect > Endpoints.
Conecte endpoints ou confirme se eles estão conectados para
todas as APIs necessárias, como
storage.googleapis.comedataproc.googleapis.come se eles se conectam à carga de trabalho em lote ou à rede de nuvem privada virtual da sessão.
- No Google Cloud console do, acesse
Private Service Connect > Endpoints.
Conecte endpoints ou confirme se eles estão conectados para
todas as APIs necessárias, como
Cloud NAT: se a carga de trabalho precisar acessar a Internet pública, configure o Cloud NAT para a carga de trabalho em lote ou a sub-rede da sessão:
- No Google Cloud console do, acesse a página
Cloud NAT.
Configure um gateway ou confirme se um
gateway está configurado para a carga de trabalho em lote
ou a rede VPC, a região e a sub-rede da sessão. Confira também se as regras de firewall permitem
o tráfego de saída para
0.0.0.0/0. Para mais informações, consulte Configurar o Cloud NAT.
- No Google Cloud console do, acesse a página
Cloud NAT.
Configure um gateway ou confirme se um
gateway está configurado para a carga de trabalho em lote
ou a rede VPC, a região e a sub-rede da sessão. Confira também se as regras de firewall permitem
o tráfego de saída para
Regras de firewall:
- As regras de firewall de saída na sua rede VPC (ou no projeto host da rede VPC compartilhada, se aplicável) não podem
bloquear o tráfego de saída para os destinos necessários.
- Se aplicável, as regras de saída precisam permitir o tráfego para serviços externos, como APIs públicas e bancos de dados fora do Google Cloud. Se a carga de trabalho em lote ou a sessão precisar de acesso à Internet, use um Cloud NAT para fornecer saída de sub-rede.
- Embora não seja uma causa comum de problemas de conectividade, regras de entrada excessivamente restritivas podem bloquear inadvertidamente o tráfego de retorno necessário ou as comunicações internas.
- As regras de firewall de saída na sua rede VPC (ou no projeto host da rede VPC compartilhada, se aplicável) não podem
bloquear o tráfego de saída para os destinos necessários.
Resolução DNS:
- A resolução DNS precisa ser configurada na rede VPC. As cargas de trabalho e sessões precisam resolver nomes de host para
APIs do Google, como
storage.googleapis.comoubigquery.googleapis.come serviços externos. - Servidores DNS personalizados e zonas particulares do Cloud DNS precisam encaminhar ou resolver consultas para domínios do Google.
- Se você estiver usando o Private Service Connect para acesso particular às APIs do Google, os registros DNS dos serviços do Google precisarão ser resolvidos para endereços IP particulares na sua rede VPC usando o endpoint do PSC.
- A resolução DNS precisa ser configurada na rede VPC. As cargas de trabalho e sessões precisam resolver nomes de host para
APIs do Google, como
Dicas para solução de problemas:
Identifique a configuração de rede e sub-rede:
- Nos detalhes da sessão ou do lote do Serverless para Apache Spark, revise
o
networkUrie osubnetUri. - No Google Cloud console do, revise as configurações da rede VPC e da sub-rede.
- Nos detalhes da sessão ou do lote do Serverless para Apache Spark, revise
o
Teste a conectividade de uma VM proxy:
- Inicie uma VM de teste do Compute Engine na sub-rede da sessão ou do lote usando a conta de serviço da sessão ou do lote.
- Na VM de teste, execute os seguintes testes de conectividade:
nslookup storage.googleapis.compara verificar a resolução DNS. Procure outros domínios de API do Google, comobigquery.googleapis.comedataproc.googleapis.com. Com o Acesso Privado do Google, que é ativado automaticamente nas sub-redes do Serverless para Apache Spark, ou Private Service Connect, os domínios precisam ser resolvidos para endereços IP particulares.curl -v https://storage.googleapis.compara verificar a conectividade HTTPS com as APIs do Google. Tente também se conectar a outros serviços do Google.ping 8.8.8.8para testar a conectividade com a Internet, se necessário para o lote ou a sessão. Tentecurl -v https://example.comse o Cloud NAT for esperado.
- Execute Google Cloud testes de conectividade do Network Intelligence Center para diagnosticar caminhos de rede da sua sub-rede para endpoints relevantes, como APIs do Google e endereços IP externos.
Revise o Cloud Logging para erros de rede:
- Revise o Logging para sua carga de trabalho ou
sessão do Serverless para Apache Spark. Procure mensagens
ERRORouWARNINGrelacionadas a tempos limite de rede, recusas de conexão ou falhas de chamada de API. Filtre porjsonPayload.component="driver"oujsonPayload.component="executor"para problemas de rede específicos do Spark.
- Revise o Logging para sua carga de trabalho ou
sessão do Serverless para Apache Spark. Procure mensagens
Permissões do IAM
Permissões insuficientes do IAM podem impedir que cargas de trabalho ou sessões acessem recursos, resultando em falhas de rede se as chamadas de API forem negadas.
A conta de serviço usada pela carga de trabalho em lote ou pela sessão precisa ter os papéis necessários:
- Papel de worker do Dataproc (
roles/dataproc.worker). - Papéis de acesso a dados, como
roles/storage.objectViewerouroles/bigquery.dataViewer). - Logging: (
roles/logging.logWriter).
Dicas para solução de problemas:
- Identifique a conta de serviço da carga de trabalho em lote ou da sessão . Se não for especificado, o padrão será a conta de serviço padrão do Compute Engine.
- Acesse a página IAM e administrador > IAM no Google Cloud console, encontre a conta de serviço da carga de trabalho em lote ou da sessão, e verifique se ela tem os papéis necessários para as operações da carga de trabalho. Conceda os papéis ausentes.
Configuração de serviço externo
Se a carga de trabalho se conectar a bancos de dados ou serviços fora do Google Cloud, verifique a configuração deles:
- Verifique se o firewall ou o grupo de segurança do serviço externo permite conexões de entrada dos intervalos de IP da rede VPC. Se aplicável, verifique os endereços IP internos usando o VPC Peering, a VPN do Cloud ou o Cloud Interconnect, ou os endereços IP do Cloud NAT.
- Revise as credenciais do banco de dados ou as strings de conectividade. Verifique os detalhes da conexão , os nomes de usuário e as senhas.
A seguir
- Saiba mais sobre a rede do Serverless para Apache Spark.
- Revise as contas de serviço do Serverless para Apache Spark.
- Consulte os guias gerais de solução de problemas de rede: