En esta página, se proporciona orientación para diagnosticar y resolver problemas comunes de conectividad de red para las cargas de trabajo por lotes y las sesiones interactivas de Serverless para Apache Spark. Estos problemas pueden impedir que tus cargas de trabajo accedan a las fuentes de datos, los servicios externos o las APIs Google Cloud necesarios.
Síntomas y mensajes de error comunes
Cuando Serverless para Apache Spark encuentra problemas de conectividad, es posible que se produzcan errores como los siguientes:
Unable to connect to service_name.googleapis.com
Could not reach required Google APIs
Connection refused
Host unreachable
Operation timed out
Permission denied
(a menudo, relacionado con la red si se bloquean las llamadas a la API)
También es posible que encuentres errores relacionados con el acceso a datos en Cloud Storage, BigQuery o en otras bases de datos.
Causas comunes y sugerencias para solucionar problemas
En esta sección, se enumeran las causas comunes de los problemas de conectividad de Serverless para Apache Spark y se proporcionan sugerencias para solucionar problemas que te ayudarán a resolverlos.
Configuración de red
Las configuraciones incorrectas de la red son una causa frecuente de fallas de conectividad. Las cargas de trabajo y las sesiones de Serverless for Apache Spark se ejecutan en VMs con direcciones IP internas, con el Acceso privado a Google (PGA) habilitado automáticamente en la subred de la carga de trabajo o la sesión para acceder a las APIs y los servicios de Google. Para obtener más información, consulta Configuración de red de Serverless para Apache Spark.
Opciones de acceso:
Private Service Connect (PSC): Puedes crear extremos privados dentro de tu red de VPC para acceder a APIs de Google específicas.
- En la consola de Google Cloud , ve a Private Service Connect > Endpoints.
Conecta los extremos o confirma que estén conectados para todas las APIs requeridas, como
storage.googleapis.com
ydataproc.googleapis.com
, y que se conecten a la red de VPC de la sesión o la carga de trabajo por lotes.
- En la consola de Google Cloud , ve a Private Service Connect > Endpoints.
Conecta los extremos o confirma que estén conectados para todas las APIs requeridas, como
Cloud NAT: Si tu carga de trabajo necesita acceder a Internet pública, puedes configurar Cloud NAT para tu carga de trabajo por lotes o subred de sesión:
- En la Google Cloud consola, ve a la página de Cloud NAT.
Configura una puerta de enlace o confirma que se haya configurado una para la carga de trabajo por lotes o la red, la región y la subred de VPC de la sesión. También asegúrate de que las reglas de firewall permitan la salida a
0.0.0.0/0
. Para obtener más información, consulta Configura Cloud NAT.
- En la Google Cloud consola, ve a la página de Cloud NAT.
Configura una puerta de enlace o confirma que se haya configurado una para la carga de trabajo por lotes o la red, la región y la subred de VPC de la sesión. También asegúrate de que las reglas de firewall permitan la salida a
Reglas de firewall:
- Las reglas de firewall de salida en tu red de VPC (o en el proyecto host de la red de VPC compartida, si corresponde) no deben bloquear el tráfico saliente a los destinos requeridos.
- Si corresponde, las reglas de salida deben permitir el tráfico a servicios externos, como las APIs públicas y las bases de datos fuera de Google Cloud. Si tu carga de trabajo o sesión por lotes necesita acceso a Internet, puedes usar Cloud NAT para proporcionar salida de subred.
- Aunque no es una causa común de problemas de conectividad, las reglas de entrada demasiado restrictivas pueden bloquear de forma involuntaria el tráfico de retorno necesario o las comunicaciones internas.
- Las reglas de firewall de salida en tu red de VPC (o en el proyecto host de la red de VPC compartida, si corresponde) no deben bloquear el tráfico saliente a los destinos requeridos.
Resolución de DNS:
- La resolución de DNS debe configurarse dentro de la red de VPC. Las cargas de trabajo y las sesiones deben poder resolver los nombres de host para las APIs de Google, como
storage.googleapis.com
obigquery.googleapis.com
, y los servicios externos. - Los servidores DNS personalizados y las zonas privadas de Cloud DNS deben reenviar o resolver las consultas de los dominios de Google.
- Si usas Private Service Connect para acceder de forma privada a las APIs de Google, los registros DNS de los servicios de Google deben resolverse en direcciones IP privadas dentro de tu red de VPC con el extremo de PSC.
- La resolución de DNS debe configurarse dentro de la red de VPC. Las cargas de trabajo y las sesiones deben poder resolver los nombres de host para las APIs de Google, como
Sugerencias para solucionar problemas:
Identifica la configuración de la red y la subred:
- En los detalles de la sesión o el lote de Serverless para Apache Spark, revisa
networkUri
ysubnetUri
. - En la consola de Google Cloud , revisa la configuración de la red y la subred de VPC.
- En los detalles de la sesión o el lote de Serverless para Apache Spark, revisa
Prueba la conectividad desde una VM de proxy:
- Inicia una VM de Compute Engine de prueba en la subred de lote o sesión con la cuenta de servicio de lote o sesión.
- Desde la VM de prueba, realiza las siguientes pruebas de conectividad:
nslookup storage.googleapis.com
para verificar la resolución de DNS. Busca otros dominios de la API de Google, comobigquery.googleapis.com
ydataproc.googleapis.com
. Con el Acceso privado a Google, que se habilita automáticamente en las subredes de Serverless para Apache Spark, o con Private Service Connect, los dominios deben resolverse en direcciones IP privadas.curl -v https://storage.googleapis.com
para verificar la conectividad HTTPS con las APIs de Google. También intenta conectarte a otros servicios de Google.ping 8.8.8.8
para probar la conectividad a Internet si tu lote o sesión lo requieren Pruebacurl -v https://example.com
si se espera Cloud NAT.
- Ejecuta las Google Cloud pruebas de conectividad de Network Intelligence Center para diagnosticar las rutas de red desde tu subred hasta los extremos pertinentes, como las APIs de Google y las direcciones IP externas.
Revisa Cloud Logging para detectar errores de red:
- Revisa el registro de tu carga de trabajo o sesión de Serverless para Apache Spark. Busca mensajes de
ERROR
oWARNING
relacionados con tiempos de espera de red, rechazos de conexión o fallas en las llamadas a la API. Filtrar porjsonPayload.component="driver"
ojsonPayload.component="executor"
para problemas de red específicos de Spark
- Revisa el registro de tu carga de trabajo o sesión de Serverless para Apache Spark. Busca mensajes de
Permisos de IAM
Los permisos insuficientes de IAM pueden impedir que las cargas de trabajo o las sesiones accedan a los recursos, lo que genera errores de red si se rechazan las llamadas a la API.
La cuenta de servicio que usa tu carga de trabajo o sesión por lotes debe tener los roles requeridos:
- Rol de trabajador de Dataproc (
roles/dataproc.worker
). - Roles de acceso a los datos, como
roles/storage.objectViewer
oroles/bigquery.dataViewer
- Registro: (
roles/logging.logWriter
).
Sugerencias para solucionar problemas:
- Identifica la carga de trabajo o la sesión por lotes de la cuenta de servicio. Si no se especifica, se usa automáticamente la cuenta de servicio predeterminada de Compute Engine.
- Ve a la página IAM y administración > IAM en la consola de Google Cloud , busca la cuenta de servicio de la sesión o la carga de trabajo por lotes y, luego, verifica que tenga los roles necesarios para las operaciones de la carga de trabajo. Otorga los roles faltantes.
Configuración del servicio externo
Si tu carga de trabajo se conecta a bases de datos o servicios fuera de Google Cloud, verifica su configuración:
- Verifica que el firewall o el grupo de seguridad del servicio externo permitan conexiones entrantes desde los rangos de IP de tu red de VPC: Si corresponde, verifica las direcciones IP internas con el intercambio de tráfico entre redes de VPC, Cloud VPN o Cloud Interconnect, o las direcciones IP de Cloud NAT.
- Revisa las credenciales de la base de datos o las cadenas de conectividad. Verifica los detalles de la conexión, los nombres de usuario y las contraseñas.
¿Qué sigue?
- Obtén más información sobre las redes de Serverless para Apache Spark.
- Revisa las cuentas de servicio de Serverless para Apache Spark.
- Consulta las guías generales de solución de problemas de red: