Soluciona problemas de conectividad de lotes y sesiones

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 y dataproc.googleapis.com, y que se conecten a la red de VPC de la sesión o la carga de trabajo por lotes.
    • 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.
  • 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.
  • 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 o bigquery.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.

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 y subnetUri.
    • En la consola de Google Cloud , revisa la configuración de la red y la subred de VPC.
  • 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, como bigquery.googleapis.com y dataproc.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 Prueba curl -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 o WARNING relacionados con tiempos de espera de red, rechazos de conexión o fallas en las llamadas a la API. Filtrar por jsonPayload.component="driver" o jsonPayload.component="executor" para problemas de red específicos de Spark

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 o roles/bigquery.dataViewer
  • Registro: (roles/logging.logWriter).

Sugerencias para solucionar problemas:

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?