Resolver problemas de conectividade de lote e sessão

Esta página fornece 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 suas cargas de trabalho acessem as fontes de dados, serviços externos ou APIs Google Cloud necessárias.

Sintomas e mensagens de erro comuns

Quando o Serverless para Apache Spark encontra problemas de conectividade, você pode receber erros como:

  • Unable to connect to service_name.googleapis.com
  • Could not reach required Google APIs
  • Connection refused
  • Host unreachable
  • Operation timed out
  • Permission denied (geralmente relacionado à rede se estiver bloqueando 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 para resolver problemas

Esta seção lista causas comuns de problemas de conectividade do Serverless para Apache Spark e oferece dicas de solução de problemas para ajudar você a resolver esses problemas.

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 o 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 sem servidor 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, acesse Private Service Connect > Endpoints. Conecte os endpoints ou confirme que eles estão conectados para todas as APIs necessárias, como storage.googleapis.com e dataproc.googleapis.com e que eles se conectam à rede VPC da carga de trabalho em lote ou da sessão.
    • 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 de sessão:

      • No console Google Cloud , acesse a página do 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. Além disso, verifique se as regras de firewall permitem a saída para 0.0.0.0/0. Para mais informações, consulte Configurar o Cloud NAT.
  • Regras de firewall:

    • As regras de firewall de saída na sua rede VPC (ou 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 de Google Cloud. Se a carga de trabalho ou sessão em lote precisar de acesso à Internet, use um Cloud NAT para fornecer saída da sub-rede.
    • Embora não seja uma causa comum de problemas de conectividade, regras de entrada muito restritivas podem bloquear inadvertidamente o tráfego de retorno necessário ou as comunicações internas.
  • Resolução de DNS:

    • A resolução de DNS precisa ser configurada na rede VPC. As cargas de trabalho e as sessões precisam resolver nomes de host para APIs do Google, como storage.googleapis.com ou bigquery.googleapis.com, e serviços externos.
    • Os servidores DNS personalizados e as zonas privadas 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 com endereços IP particulares na sua rede VPC usando o endpoint do PSC.

Dicas para solução de problemas:

  • Identifique a configuração de rede e sub-rede:

    • Nos detalhes do lote ou da sessão do Serverless para Apache Spark, analise networkUri e subnetUri.
    • No console Google Cloud , revise as configurações da rede e da sub-rede VPC.
  • Teste a conectividade de uma VM de proxy:

    • Inicie uma VM de teste do Compute Engine na sub-rede de lote ou sessão usando a conta de serviço de lote ou sessão.
    • Na VM de teste, faça os seguintes testes de conectividade:
      • nslookup storage.googleapis.com para verificar a resolução de DNS. Procure outros domínios de APIs do Google, como bigquery.googleapis.com e dataproc.googleapis.com. Com o Acesso privado do Google, que é ativado automaticamente em sub-redes sem servidor para Apache Spark, ou com o Private Service Connect, os domínios precisam ser resolvidos para endereços IP particulares.
      • curl -v https://storage.googleapis.com para verificar a conectividade HTTPS com as APIs do Google. Tente também se conectar a outros Serviços do Google.
      • ping 8.8.8.8 para testar a conectividade com a Internet, se necessário, de acordo com seu lote ou sessão. Tente curl -v https://example.com se o Cloud NAT for esperado.
    • Execute os Testes de conectividade do Network Intelligence Center para diagnosticar caminhos de rede da sua sub-rede até endpoints relevantes, como APIs do Google e endereços IP externo
  • Revise o Cloud Logging para encontrar erros de rede:

    • Analise o registro em log da sua carga de trabalho ou sessão do Serverless para Apache Spark. Procure mensagens ERROR ou WARNING relacionadas a tempos limite de rede, recusas de conexão ou falhas de chamada de API. Filtre por jsonPayload.component="driver" ou jsonPayload.component="executor" para problemas de rede específicos do Spark.

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 sua carga de trabalho em lote ou sessão precisa ter os papéis necessários:

  • Papel de worker do Dataproc (roles/dataproc.worker).
  • Funções de acesso a dados, como roles/storage.objectViewer ou roles/bigquery.dataViewer.
  • Logging: (roles/logging.logWriter).

Dicas para solução de problemas:

  • Identifique a conta de serviço da sessão ou da carga de trabalho em lote. 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 console Google Cloud , encontre a conta de serviço da sessão ou da carga de trabalho em lote e verifique se ela tem os papéis necessários para operações de carga de trabalho. Conceda os papéis que estiverem faltando.

Configuração de serviço externo

Se a carga de trabalho se conectar a bancos de dados ou serviços fora de 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 peering de VPC, Cloud VPN 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