Esta página fornece orientações sobre o diagnóstico e a resolução de problemas comuns de conetividade de rede para cargas de trabalho em lote e sessões interativas do Serverless para Apache Spark. Estes problemas podem impedir que as suas cargas de trabalho acedam às origens de dados necessárias, aos serviços externos ou às Google Cloud APIs.
Sintomas e mensagens de erro comuns
Quando o Serverless para Apache Spark encontra problemas de conetividade, pode encontrar 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
(frequentemente relacionado com a rede se estiver a bloquear chamadas API)
Também pode encontrar erros relacionados com o acesso a dados no Cloud Storage, no BigQuery ou noutras bases de dados.
Causas comuns e sugestões de resolução de problemas
Esta secção apresenta as causas comuns dos problemas de conetividade do Serverless para Apache Spark e fornece dicas de resolução de problemas para ajudar a resolvê-los.
Configuração da rede
As configurações incorretas da rede são uma causa frequente de falhas de conetividade. O processamento sem servidor para cargas de trabalho e sessões do Apache Spark é executado em VMs com endereços IP internos, com o acesso privado à Google (PGA) ativado automaticamente na sub-rede da carga de trabalho ou da sessão para aceder às APIs e aos serviços Google. Para mais informações, consulte o artigo Configuração de rede sem servidor para o Apache Spark.
Opções de acesso:
Private Service Connect (PSC): pode criar pontos finais privados na sua rede VPC para aceder a APIs Google específicas.
- Na Google Cloud consola, aceda a
Private Service Connect > Pontos finais.
Ligue os pontos finais ou confirme que os pontos finais estão ligados para todas as APIs necessárias, como
storage.googleapis.com
edataproc.googleapis.com
, e que se ligam à carga de trabalho em lote ou à rede da nuvem virtual privada da sessão.
- Na Google Cloud consola, aceda a
Private Service Connect > Pontos finais.
Ligue os pontos finais ou confirme que os pontos finais estão ligados para todas as APIs necessárias, como
Cloud NAT: se a sua carga de trabalho precisar de aceder à Internet pública, pode configurar o Cloud NAT para a carga de trabalho em lote ou a sub-rede de sessão:
- Na Google Cloud consola, aceda à 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. Certifique-se também de que as regras de firewall permitem a saída para
0.0.0.0/0
. Para mais informações, consulte o artigo Configure o Cloud NAT.
- Na Google Cloud consola, aceda à 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. Certifique-se também de que as regras de firewall permitem a saída para
Regras de firewall:
- As regras da firewall de saída na sua rede VPC (ou no projeto anfitrião da rede VPC partilhada, 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 têm de permitir o tráfego para serviços externos, como APIs públicas e bases de dados fora de Google Cloud. Se a sua carga de trabalho em lote ou sessão precisar de acesso à Internet, pode usar um Cloud NAT para fornecer saída da sub-rede.
- Embora não seja uma causa comum de problemas de conetividade, as regras de entrada excessivamente restritivas podem bloquear inadvertidamente o tráfego de retorno necessário ou as comunicações internas.
- As regras da firewall de saída na sua rede VPC (ou no projeto anfitrião da rede VPC partilhada, se aplicável) não podem bloquear o tráfego de saída para os destinos necessários.
Resolução de DNS:
- A resolução de DNS tem de ser configurada na rede da VPC. As cargas de trabalho e as sessões têm de conseguir resolver os nomes de anfitrião para as APIs Google, como
storage.googleapis.com
oubigquery.googleapis.com
, e serviços externos. - Os servidores DNS personalizados e as zonas privadas do Cloud DNS têm de encaminhar ou resolver consultas para domínios Google.
- Se estiver a usar o Private Service Connect para acesso privado às APIs Google, os registos de DNS dos serviços Google têm de ser resolvidos para endereços IP privados na sua rede VPC através do ponto final do PSC.
- A resolução de DNS tem de ser configurada na rede da VPC. As cargas de trabalho e as sessões têm de conseguir resolver os nomes de anfitrião para as APIs Google, como
Sugestões de resoluçã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, reveja os campos
networkUri
esubnetUri
. - Na consola Google Cloud , reveja as definições da rede VPC e da sub-rede.
- Nos detalhes da sessão ou do lote do Serverless para Apache Spark, reveja os campos
Teste a conetividade a partir de uma VM de proxy:
- Inicie uma VM do Compute Engine de teste na sub-rede do lote ou da sessão usando a conta de serviço do lote ou da sessão.
- Na VM de teste, faça os seguintes testes de conetividade:
nslookup storage.googleapis.com
para validar a resolução de DNS. Procure outros domínios da API Google, comobigquery.googleapis.com
edataproc.googleapis.com
. Com o acesso privado à Google, que é ativado automaticamente nas sub-redes sem servidor para o Apache Spark, ou o Private Service Connect, os domínios têm de ser resolvidos para endereços IP privados.curl -v https://storage.googleapis.com
para validar a conetividade HTTPS com as APIs Google. Experimente também estabelecer ligação a outros serviços Google.ping 8.8.8.8
para testar a conetividade à Internet, se necessário para o seu lote ou sessão. Experimentecurl -v https://example.com
se o Cloud NAT for esperado.
- Execute Google Cloud testes de conetividade do Network Intelligence Center para diagnosticar caminhos de rede da sua sub-rede para pontos finais relevantes, como APIs Google e endereços IP externos.
Reveja o Cloud Logging para ver erros de rede:
- Reveja o registo para a sua carga de trabalho ou sessão do Serverless for Apache Spark. Procure mensagens
ERROR
ouWARNING
relacionadas com limites de tempo da rede, recusas de ligação ou falhas de chamadas API. Filtre porjsonPayload.component="driver"
oujsonPayload.component="executor"
para problemas de rede específicos do Spark.
- Reveja o registo para a sua carga de trabalho ou sessão do Serverless for Apache Spark. Procure mensagens
Autorizações de IAM
As autorizações da IAM insuficientes podem impedir que as cargas de trabalho ou as sessões acedam aos recursos, o que resulta em falhas de rede se as chamadas API forem recusadas.
A conta de serviço usada pela sua carga de trabalho em lote ou sessão tem de ter as funções necessárias:
- Função de trabalhador do Dataproc (
roles/dataproc.worker
). - Funções de acesso aos dados, como
roles/storage.objectViewer
ouroles/bigquery.dataViewer
). - Registo: (
roles/logging.logWriter
).
Sugestões de resolução de problemas:
- Identifique a carga de trabalho em lote ou a conta de serviço da sessão. Se não for especificado, o valor predefinido é a conta de serviço predefinida do Compute Engine.
- Aceda à página IAM e administrador > IAM na Google Cloud consola, encontre a conta de serviço de carga de trabalho em lote ou de sessão e, em seguida, verifique se tem as funções necessárias para as operações de carga de trabalho. Conceda as funções em falta.
Configuração do serviço externo
Se a sua carga de trabalho se ligar a bases de dados ou serviços fora do Google Cloud, verifique a respetiva configuração:
- Verifique se a firewall do serviço externo ou o grupo de segurança permite ligações de entrada dos intervalos de IP da sua rede VPC: se aplicável, verifique os endereços IP internos através do VPC Peering, do Cloud VPN ou do Cloud Interconnect, ou dos endereços IP do Cloud NAT.
- Reveja as credenciais da base de dados ou as strings de conetividade. Verifique os detalhes da ligação, os nomes de utilizador e as palavras-passe.
O que se segue?
- Saiba mais sobre a rede sem servidor para o Apache Spark.
- Reveja as contas de serviço sem servidor para o Apache Spark.
- Consulte os guias gerais de resolução de problemas de rede: