Solución de problemas de conectividad de Dataproc Metastore

En esta página, se proporciona orientación para diagnosticar y resolver problemas comunes de conectividad cuando se conectan clústeres de Dataproc o cargas de trabajo de Dataproc Serverless a un servicio administrado de Dataproc Metastore.

Síntomas y mensajes de error comunes

Cuando Dataproc encuentra problemas de conectividad con Dataproc Metastore, es posible que veas errores como los siguientes:

  • Unable to connect to Hive Metastore
  • Connection refused
  • Host unreachable
  • javax.jdo.JDOException o errores similares de conexión a la base de datos
  • Se producen errores de tiempo de espera cuando se intenta enumerar bases de datos o tablas, o cuando se envían trabajos de Spark o Hive que interactúan con Metastore.

Causas comunes y pasos para solucionar problemas

En esta sección, se describen los motivos comunes por los que se producen problemas de conectividad con Dataproc Metastore y se proporcionan pasos específicos para solucionar cada uno de ellos.

1. Problemas de configuración de red

Los errores de configuración de red son la causa más frecuente de las fallas de conectividad entre las cargas de trabajo de Dataproc y Dataproc Metastore.

  • Interconexión de redes de nube privada virtual o acceso a servicios privados:

    • Por lo general, se accede a las instancias de Dataproc Metastore con un rango de direcciones IP privadas a través de una conexión de intercambio de tráfico entre redes de nube privada virtual (específicamente, acceso privado a servicios).
    • Verifica el estado del intercambio de tráfico: Verifica que la conexión de intercambio de tráfico entre redes de nube privada virtual de la red de nube privada virtual de tu carga de trabajo de Dataproc y la red del productor de servicios de Dataproc Metastore esté activa y en buen estado. Puedes verificarlo en la consola deGoogle Cloud en Red de VPC > Intercambio de tráfico entre redes de VPC.
    • Asignación de rango de IP: Confirma que se haya asignado un rango de IP suficiente para el acceso a servicios privados en tu red de nube privada virtual.
  • Reglas de firewall:

    • Verifica que las reglas de firewall de la red de nube privada virtual de tu carga de trabajo de Dataproc permitan el tráfico saliente en el puerto que usa Dataproc Metastore (el valor predeterminado es 9083).
    • Verifica que no haya reglas de entrada demasiado restrictivas del lado de la red del productor de servicios que bloqueen el tráfico de tu carga de trabajo de Dataproc.
  • Resolución de DNS:

    • Confirma que el nombre de host del extremo de Metastore (p.ej., your-metastore-endpoint.us-central1.dataproc.cloud.google.com) se resuelve correctamente en una dirección IP privada desde tu clúster de Dataproc o entorno de Dataproc Serverless.
    • Los problemas con las zonas privadas de Cloud DNS o el reenvío de DNS pueden provocar errores de resolución.

Pasos para solucionar problemas (red):

  1. Verifica la información de conectividad de Dataproc Metastore:
    • En la consola de Google Cloud , navega a Dataproc Metastore y selecciona tu instancia.
    • Toma nota del URI del extremo y la red a la que está conectado.
  2. Verifica el peering de la nube privada virtual o el acceso privado a servicios:
    • Ve a Red de VPC > Intercambio de tráfico entre redes de VPC. Confirma que la conexión de intercambio de tráfico a servicenetworking-googleapis-com sea ACTIVE.
  3. Usa las pruebas de conectividad: Usa las pruebas de conectividad de Google Cloudpara diagnosticar la ruta de red desde una VM de Compute Engine en la subred de la carga de trabajo de Dataproc hasta la dirección IP y el puerto del extremo de Dataproc Metastore.
  4. Revisa los registros del firewall: Si sospechas que hay reglas de firewall, analiza los registros del Firewall de Cloud para detectar conexiones rechazadas.

2. Permisos de IAM

La cuenta de servicio que usa tu carga de trabajo de Dataproc necesita los roles de IAM adecuados para acceder a Dataproc Metastore.

  • Rol requerido: La cuenta de servicio debe tener el rol de Usuario de Dataproc Metastore (roles/datametastore.user) en la instancia o el proyecto de Dataproc Metastore.
  • Permisos del agente de servicio: Verifica que el agente de servicio de Dataproc tenga los permisos suficientes si Dataproc accede de forma implícita a Metastore.

Pasos para solucionar problemas (IAM):

  1. Identifica la cuenta de servicio: Determina la cuenta de servicio que usa tu clúster de Dataproc o tu lote de Dataproc Serverless.
  2. Verifica los roles de IAM: Ve a IAM y administración > IAM en la consola de Google Cloud . Verifica los roles asignados a la cuenta de servicio en el proyecto o la instancia de Dataproc Metastore. Otorga roles/datametastore.user si falta.
  3. Para obtener más detalles sobre la configuración de la cuenta de servicio, consulta lo siguiente:

3. Configuración incorrecta del extremo

La carga de trabajo de Dataproc debe configurarse con el URI del extremo de Dataproc Metastore correcto.

Pasos para solucionar problemas (extremo):

  1. Verifica el URI del extremo: Vuelve a verificar la propiedad hive.metastore.uris de Spark o cualquier otra configuración que se use para especificar el extremo de Dataproc Metastore en el envío de tu carga de trabajo. Verifica que coincida con el URI de extremo de los detalles de tu instancia de Dataproc Metastore.

4. Otras consideraciones

  • Estado de Metastore: Verifica que tu instancia de Dataproc Metastore esté en estado HEALTHY en la consola de Google Cloud . Si no está en buen estado, primero aborda los problemas internos del metastore.
  • Compatibilidad de versiones: Si bien es poco común, verifica que no haya problemas de compatibilidad conocidos entre la versión de la imagen de Dataproc y la versión de Dataproc Metastore.
  • Proxy de SQL en comparación con el servicio administrado: Si usas Cloud SQL como Metastore con la acción de inicialización cloud-sql-proxy.sh, consulta su solución de problemas específica en el README de la acción de inicialización del proxy de Cloud SQL.

¿Qué sigue?