Dépannage

Cette page décrit les différents scénarios d'erreur et la procédure de dépannage pour résoudre les erreurs.

Scénarios d'erreur de connectivité et de mise en réseau

Si votre service rencontre des problèmes de connectivité ou de mise en réseau, consultez les scénarios des sections suivantes pour savoir si l'un d'eux est à l'origine du problème.

Échec de la création du service en raison d'une contrainte limitant l'appairage VPC

Ne définissez pas la contrainte de règle d'administration pour limiter l'appairage VPC. Si vous spécifiez constraints/compute.restrictVpcPeering, votre requête de création échoue avec une erreur INVALID_ARGUMENT. Si vous devez définir la contrainte, exécutez la commande suivante pour autoriser under:folders/270204312590 :

gcloud resource-manager org-policies allow compute.restrictVpcPeering under:folders/270204312590 --organization ORGANIZATION_ID

Pour en savoir plus, consultez la section Contraintes de règles d'administration.

Échec du déploiement inter-projets si le compte de service n'existe pas

Pour créer un service Dataproc Metastore accessible dans un réseau appartenant à un projet différent de celui auquel le service appartient, vous devez accorder le rôleroles/metastore.serviceAgent à l'agent de service Dataproc Metastore du projet de service (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com ) dans la stratégie IAM du projet réseau.

gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
    --role "roles/metastore.serviceAgent" \
    --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com"

Pour en savoir plus, consultez la page Configurer un déploiement sur plusieurs projets.

Échec de la création d'un service Dataproc Metastore multirégional

Lorsque vous créez un service Dataproc Metastore multirégional, le message d'erreur suivant peut s'afficher :

The Dataproc Service Agent does not have permission to GET Dataproc Metastore service
'projects/<dpmsproject>/locations/nam7/services/<service>'. If using a service from the
cluster's project, please ensure the service agent has the Cloud IAM role
'roles/dataproc.serviceAgent'. Please see
https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-
principals#service_agent_control_plane_identity for information on the Dataproc Service
Agent, and https://cloud.google.com/iam/docs/granting-changing-revoking-access#granting-
gcloud-manual for information on granting access.

Cette erreur se produit si votre cluster Dataproc se trouve dans un projet différent de votre Dataproc Metastore, mais que vous n'avez pas accordé les autorisations appropriées à votre projet.

Pour résoudre cette erreur, vous devez accorder l'autorisation metastore.services.get au compte de service Dataproc contenu dans votre projet Dataproc Metastore.

Veuillez indiquer une adresse IP privée pour la connectivité réseau

Dataproc Metastore n'utilise qu'une adresse IP privée. Par conséquent, aucune adresse IP publique n'est exposée. Cela signifie que seules les VM du réseau cloud privé virtuel (VPC) fourni ou sur site (connectées via Cloud VPN ou Cloud Interconnect) peuvent accéder au service Dataproc Metastore.

Pour en savoir plus, consultez la section Accès aux services.

Règle de pare-feu d'autorisation d'entrée requise pour Kerberos

Kerberos nécessite Dataproc Metastore pour initier des connexions aux hôtes de votre réseau de projet. Vous devez créer une règle de pare-feu qui autorise l'entrée TCP et UDP sur tous les ports du bloc d'adresses IP /17 contenant l'adresse IP de Dataproc Metastore.

Pour en savoir plus, consultez les sections Règles de pare-feu sur votre KDC et Règles de pare-feu pour vos services.

Erreur de connexion provoquée par des ressources provisionnées dans des réseaux VPC partagés

Si votre Dataproc Metastore. Dans ce cas, Dataproc Metastore tente de réserver des plages d'adresses IP privées en dehors des plages RFC 1918 pour la création de services. Pour obtenir une liste plages privées non-RFC 1918 compatibles, consultez la section Plages valides dans la documentation sur les réseaux VPC.} utilise un réseau appartenant à projet différent, et Compute Engine est protégé par le service le projet de métastore et le projet réseau doivent appartenir au même périmètre.

Pour ajouter des projets Dataproc Metastore existants au périmètre, suivez les instructions de la section Mettre à jour un périmètre de service.

Pour en savoir plus, consultez la page VPC Service Controls avec Dataproc Metastore.

La plage d'adresses IP allouée est épuisée.

Le réseau VPC fourni peut manquer d'adresses RFC 1918 disponibles requises par les services Dataproc Metastore. Dans ce cas, Dataproc Metastore tente de réserver des plages d'adresses IP privées en dehors des plages RFC 1918 pour la création de services. Pour obtenir la liste des plages privées non-RFC 1918 compatibles, consultez la section Plages valides dans la documentation du réseau VPC.

Les adresses IP privées non-RFC 1918 utilisées dans Dataproc Metastore peuvent entrer en conflit avec une plage d'un réseau sur site connecté au réseau VPC fourni. Pour vérifier la liste des adresses IP privées RFC 1918 et non-RFC 1918 réservées par Dataproc Metastore, procédez comme suit:

gcloud compute addresses list \
    --project NETWORK_PROJECT_ID \
    --filter="purpose:VPC_PEERING AND name ~ cluster|resourcegroup"

Si un conflit est déterminé et ne peut pas être atténué en reconfigurant le réseau sur site, supprimez le service Dataproc Metastore défaillant, puis recréez-le après deux heures.

Pour plus d'informations, consultez la section Épuisement de la plage d'adresses IP.

Scénarios d'erreur de délai avant expiration de l'opération

Les scénarios d'erreur suivants entraînent une absence de réponse du service ou des délais d'opération.

Utiliser les journaux d'audit pour résoudre les problèmes d'expiration des délais d'opération

Pour résoudre les problèmes liés aux délais avant expiration des opérations de service, utilisez l'explorateur de journaux console Google Cloud pour récupérer les entrées du journal d'audit de votre projet Cloud.

Dans le volet du générateur de requêtes, sélectionnez Ressource auditée ou audited_resource comme type de ressource Google Cloud, suivi de Dataproc Metastore ou metastore.googleapis.com en tant que service. La sélection d'une méthode est facultative.

Pour en savoir plus, consultez la page Afficher les journaux.

Scénarios d'erreur d'importation et d'exportation

Cette section décrit les problèmes d'importation et d'exportation courants de Dataproc Metastore.

L'importation échoue, car les versions Hive ne correspondent pas.

Lorsque vous importez des métadonnées, les versions du métastore Hive et de Dataproc Metastore doivent être compatibles. Votre importation peut échouer si les deux ne correspondent pas.

Pour en savoir plus sur la compatibilité, consultez les règles de versions.

Vous pouvez consulter Cloud Logging pour vérifier si vous avez rencontré cette erreur. Le message suivant en est un exemple.

Metastore schema version is not compatible. Hive Version: 3.1.0, Database Schema Version: 2.3.0

Échec de l'importation, car il manque des fichiers de table Hive.

Lors de la préparation de l'importation pour Avro, un fichier doit être enregistré pour chaque table Hive, même si la table est vide. Sinon, l'importation échoue.

Vous pouvez utiliser le kit Dataproc Metastore. comme référence pour vérifier les bons schémas de métadonnées Hive.

L'agent de service ou l'utilisateur ne dispose pas des autorisations nécessaires

L'agent de service Dataproc Metastore (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) et l'utilisateur qui importe les métadonnées doivent disposer des autorisations de lecture suivantes sur le bucket Cloud Storage utilisé pour l'importation:

  • Pour MySQL, ils doivent disposer de l'autorisation storage.objects.get sur l'objet Cloud Storage (fichier de vidage SQL) utilisé pour l'importation.

  • Pour Avro, ils doivent disposer de l'autorisation storage.objects.get sur le bucket Cloud Storage utilisé pour l'importation.

Pour les exportations, l'agent de service Dataproc Metastore (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) et l'utilisateur qui crée l'exportation doivent disposer de l'autorisation storage.objects.create sur le bucket.

La tâche échoue, car le fichier de base de données est trop volumineux

Si votre fichier de base de données est trop volumineux, le délai peut dépasser le délai avant expiration du job. pour terminer le processus d'importation ou d'exportation. Si l'importation ne parvient pas à se terminer dans le délai avant expiration du job de trois heures, vous pouvez répartir vos métadonnées sur plusieurs instances Dataproc Metastore.

Scénarios d'erreur de sauvegarde et de restauration

Cette section décrit les problèmes courants de sauvegarde et de restauration de Dataproc Metastore.

Impossible de créer une sauvegarde pour un service

Si un service contient déjà sept sauvegardes, vous devez d'abord en supprimer une manuellement avant d'en créer une autre. Vous pouvez supprimer des sauvegardes existantes à partir de l'onglet Sauvegarder/Restaurer.

L'utilisateur ne dispose pas des autorisations nécessaires

Pour sauvegarder des métadonnées, vous devez demander un rôle IAM contenant l'autorisation IAM metastore.backups.create.

Pour restaurer les métadonnées, vous devez demander un rôle IAM contenant les autorisations IAM metastore.services.restore et metastore.backups.use.

La tâche échoue, car le fichier de métadonnées du service est trop volumineux

Si votre fichier de métadonnées de service est trop volumineux, le processus de sauvegarde ou de restauration peut prendre plus de temps que le délai avant expiration de la tâche d'une heure.

Scénarios d'erreur de cluster Dataproc

Les sections suivantes décrivent les problèmes courants liés aux clusters Dataproc et autogérés.

Échec du rattachement de cluster Dataproc en raison de versions incompatibles

Lorsque vous associez un cluster Dataproc, l'image Dataproc et la version Hive Dataproc Metastore doivent être compatibles. Consultez les pages de gestion des versions d'images suivantes pour vous assurer que la version de Hive est compatible:

Pour en savoir plus, consultez la liste des versions d'image Dataproc.

Échec de la création du cluster Dataproc en raison d'un nombre insuffisant de rôles

Lors de la création d'un cluster Dataproc, la création du cluster échoue avec le message d'erreur suivant:

gcloud.dataproc.clusters.create) INVALID_ARGUMENT: Default Service Account '**********-compute@developer.gserviceaccount.com' is missing required permissions: [dataproc.agents.create, dataproc.agents.delete, dataproc.agents.get, dataproc.agents.update, dataproc.tasks.lease, dataproc.tasks.listInvalidatedLeases, dataproc.tasks.reportStatus]. Service Accounts must have either 'Dataproc/Dataproc Worker' role or all permissions granted by the role.

Cela peut se produire lorsque vous essayez de créer un cluster Dataproc. et l'associer à votre Dataproc Metastore.

Pour résoudre ce problème, accordez le roles/dataproc.worker à votre compte de service. L'exemple suivant montre comment procéder à l'aide de quelques exemples de valeurs.

gcloud projects add-iam-policy-binding my_project \
    --member=219315-compute@developer.gserviceaccount.com \
    --role=roles/dataproc.worker

Échec de la connexion au métastore en raison de problèmes de fuseau horaire

Votre fichier Hive renvoie l'erreur The server time zone value 'CDT' is unrecognized or represents more than one time zone.

Si vous ne pouvez pas vous connecter à votre métastore depuis Dataproc, vous devez supprimer votre cluster actuel et mettre à jour votre commande gcloud dataproc clusters create ou votre outil d'automatisation pour inclure les paramètre de fuseau horaire suivants :

--metadata "hive-metastore-uri=jdbc:mysql://10.207.26.77:3306/hive_metastore?serverTimezone=CST6CDT"

Résoudre les problèmes liés à Google Cloud CLI

Si vous rencontrez un problème lié à l'indisponibilité d'une commande de la CLI gcloud ou à un comportement de la commande différent de celui documenté, essayez de mettre à jour la CLI gcloud :

gcloud components update

Étape suivante