Solucionar problemas de conectividad de Dataproc Metastore

En esta página se ofrecen directrices para diagnosticar y resolver problemas de conectividad habituales al conectar clústeres de Dataproc o cargas de trabajo de Dataproc Serverless a un servicio Dataproc Metastore gestionado.

Síntomas y mensajes de error habituales

Cuando Dataproc tiene 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 u otros errores de conexión a la base de datos
  • Se producen errores de tiempo de espera al intentar enumerar bases de datos o tablas, o al enviar trabajos de Spark o Hive que interactúan con el metastore.

Causas habituales y pasos para solucionar problemas

En esta sección se describen los motivos habituales por los que se producen problemas de conectividad de 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 los fallos de conectividad entre las cargas de trabajo de Dataproc y Dataproc Metastore.

  • Emparejamiento de redes de nube privada virtual o acceso a servicios privados:

    • Normalmente, se accede a las instancias de Dataproc Metastore mediante un intervalo de direcciones IP privadas con una conexión de peering de red de nube privada virtual (VPC), concretamente, Acceso a servicios privados.
    • Verifica el estado del peering: comprueba que la conexión de peering de nube privada virtual entre 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 comprobarlo en la consola, enGoogle Cloud Red de VPC > Emparejamiento entre redes de VPC.
    • Asignación de intervalo de IP: confirma que se ha asignado un intervalo de IP suficiente para el acceso privado a los servicios en tu red de nube privada virtual.
  • Reglas de cortafuegos:

    • Verifica que las reglas de cortafuegos 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 predeterminado es 9083).
    • Comprueba que no haya reglas de entrada demasiado restrictivas en 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 endpoint de Metastore (por ejemplo, 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 el problema (red):

  1. Consulta la información de conectividad de Dataproc Metastore:
    • En la Google Cloud consola, ve a Dataproc Metastore y selecciona tu instancia.
    • Anota el URI del endpoint y la red a la que está conectado.
  2. Verifica el peering de nube privada virtual o el acceso a servicios privados:
    • Ve a Red de VPC > Emparejamiento entre redes de VPC. Confirma que la conexión de emparejamiento con servicenetworking-googleapis-com sea ACTIVE.
  3. Usa 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 tu carga de trabajo de Dataproc hasta la dirección IP y el puerto del endpoint de Dataproc Metastore.
  4. Consulta los registros del cortafuegos: si sospechas que hay reglas de cortafuegos, analiza los registros del cortafuegos de Cloud para ver las conexiones denegadas.

2. Permisos de IAM

La cuenta de servicio que usa tu carga de trabajo de Dataproc necesita los roles de gestión de identidades y accesos adecuados para acceder a Dataproc Metastore.

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

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 sin servidor.
  2. Verifica los roles de IAM: ve a IAM y administración > IAM en la consola de Google Cloud . Comprueba los roles asignados a la cuenta de servicio en el proyecto o la instancia de Dataproc Metastore. Concede el permiso roles/datametastore.user si falta.
  3. Para obtener más información sobre la configuración de las cuentas de servicio, consulta los siguientes artículos:

3. Configuración de Endpoint incorrecta

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

Pasos para solucionar el problema (endpoint):

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

4. Otras cuestiones que debes tener en cuenta

  • Estado del metastore: comprueba que tu instancia de Dataproc Metastore tenga el estado HEALTHY en la consola Google Cloud . Si no está en buen estado, primero debes solucionar los problemas internos del metastore.
  • Compatibilidad de versiones: aunque es poco habitual, comprueba 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 frente a servicio gestionado: si usas Cloud SQL como metastore con la acción de inicialización cloud-sql-proxy.sh, consulta la sección de solución de problemas específica en el archivo LÉEME de la acción de inicialización del proxy de Cloud SQL.

Siguientes pasos