Résoudre les problèmes de connectivité Dataproc Metastore

Cette page explique comment diagnostiquer et résoudre les problèmes de connectivité courants lorsque vous connectez des clusters Dataproc ou des charges de travail Dataproc sans serveur à un service Dataproc Metastore géré.

Problèmes constatés et messages d'erreur courants

Lorsque Dataproc rencontre des problèmes de connectivité avec Dataproc Metastore, vous pouvez voir des erreurs telles que :

  • Unable to connect to Hive Metastore
  • Connection refused
  • Host unreachable
  • javax.jdo.JDOException ou des erreurs de connexion à la base de données similaires
  • Erreurs de délai avant expiration lorsque vous tentez de lister des bases de données ou des tables, ou lorsque vous envoyez des jobs Spark ou Hive qui interagissent avec le metastore.

Causes courantes et étapes de dépannage

Cette section décrit les raisons courantes des problèmes de connectivité à Dataproc Metastore et fournit des étapes de dépannage spécifiques pour chacun d'eux.

1. Problèmes de configuration du réseau

Les erreurs de configuration réseau sont la cause la plus fréquente des échecs de connectivité entre les charges de travail Dataproc et Dataproc Metastore.

  • Appairage de réseaux de cloud privé virtuel ou accès privé aux services :

    • Les instances Dataproc Metastore sont généralement accessibles à l'aide d'une plage d'adresses IP privées via une connexion d'appairage de réseau cloud privé virtuel (plus précisément, l'accès privé aux services).
    • Vérifiez l'état de l'appairage : vérifiez que la connexion d'appairage de cloud privé virtuel entre le réseau de cloud privé virtuel de votre charge de travail Dataproc et le réseau de producteurs de services pour Dataproc Metastore est active et en bon état. Vous pouvez vérifier cela dans la consoleGoogle Cloud sous Réseau VPC > Appairage de réseaux VPC.
    • Allocation de plages d'adresses IP : vérifiez qu'une plage d'adresses IP suffisante a été allouée pour l'accès aux services privés dans votre réseau de cloud privé virtuel.
  • Règles de pare-feu :

    • Vérifiez que les règles de pare-feu du réseau de cloud privé virtuel de votre charge de travail Dataproc autorisent le trafic sortant sur le port utilisé par Dataproc Metastore (9083 par défaut).
    • Vérifiez qu'il n'existe pas de règles d'entrée trop restrictives du côté du réseau du producteur de services qui bloqueraient le trafic de votre charge de travail Dataproc.
  • Résolution DNS :

    • Vérifiez que le nom d'hôte du point de terminaison du métastore (par exemple, your-metastore-endpoint.us-central1.dataproc.cloud.google.com) est correctement résolue en adresse IP privée à partir de votre cluster Dataproc ou de votre environnement Dataproc sans serveur.
    • Des problèmes liés aux zones privées Cloud DNS ou au transfert DNS peuvent entraîner des échecs de résolution.

Procédure de dépannage (réseau) :

  1. Vérifiez les informations de connectivité de Dataproc Metastore :
    • Dans la console Google Cloud , accédez à Dataproc Metastore et sélectionnez votre instance.
    • Notez l'URI du point de terminaison et le réseau auquel il est connecté.
  2. Vérifiez l'appairage de cloud privé virtuel ou l'accès aux services privés :
    • Accédez à Réseau VPC > Appairage de réseaux VPC. Vérifiez que la connexion d'appairage à servicenetworking-googleapis-com est ACTIVE.
  3. Utiliser les tests de connectivité : utilisez les tests de connectivité de Google Cloudpour diagnostiquer le chemin réseau d'une VM Compute Engine dans le sous-réseau de votre charge de travail Dataproc vers l'adresse IP et le port du point de terminaison Dataproc Metastore.
  4. Vérifiez les journaux du pare-feu : si vous pensez que des règles de pare-feu sont en cause, analysez les journaux du pare-feu cloud pour les connexions refusées.

2. Autorisations IAM

Le compte de service utilisé par votre charge de travail Dataproc doit disposer des rôles IAM appropriés pour accéder à Dataproc Metastore.

  • Rôle requis : le compte de service doit disposer du rôle Utilisateur Dataproc Metastore (roles/datametastore.user) sur l'instance ou le projet Dataproc Metastore.
  • Autorisations de l'agent de service : vérifiez que l'agent de service Dataproc dispose des autorisations suffisantes si Dataproc accède implicitement au metastore.

Procédure de dépannage (IAM) :

  1. Identifier le compte de service : déterminez le compte de service utilisé par votre cluster Dataproc ou votre lot Dataproc sans serveur.
  2. Vérifiez les rôles IAM : accédez à IAM et administration > IAM dans la console Google Cloud . Vérifiez les rôles attribués au compte de service dans le projet ou l'instance Dataproc Metastore. Accorder roles/datametastore.user si manquant.
  3. Pour en savoir plus sur la configuration des comptes de service, consultez les pages suivantes :

3. Configuration incorrecte du point de terminaison

La charge de travail Dataproc doit être configurée avec l'URI de point de terminaison Dataproc Metastore approprié.

Procédure de dépannage (point de terminaison) :

  1. Vérifiez l'URI du point de terminaison : vérifiez la propriété Spark hive.metastore.uris ou toute autre configuration utilisée pour spécifier le point de terminaison Dataproc Metastore dans l'envoi de votre charge de travail. Vérifiez qu'il correspond à l'URI du point de terminaison des informations de votre instance Dataproc Metastore.

4. Autres points à noter

  • État de Metastore : vérifiez que votre instance Dataproc Metastore est à l'état HEALTHY dans la console Google Cloud . Si l'état n'est pas sain, résolvez d'abord les problèmes internes du metastore.
  • Compatibilité des versions : bien que cela soit rare, vérifiez qu'il n'existe aucun problème de compatibilité connu entre la version de votre image Dataproc et la version de Dataproc Metastore.
  • Proxy SQL ou service géré : si vous utilisez Cloud SQL comme metastore à l'aide de l'action d'initialisation cloud-sql-proxy.sh, consultez la section de dépannage spécifique dans le fichier README de l'action d'initialisation du proxy Cloud SQL.

Étapes suivantes