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 du service Dataproc Metastore multirégional

Lorsque vous créez un service Dataproc Metastore multirégional, vous pouvez rencontrer l'erreur suivante:

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 Dataproc Metastore, mais que vous n'avez pas accordé les autorisations appropriées pour 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 causée par des ressources provisionnées dans des réseaux VPC partagés

Si votre instance 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 sur le réseau VPC. Le service utilise un réseau appartenant à un autre projet. Compute Engine étant protégé par le périmètre de service, le projet de métastore et le projet réseau doivent se trouver dans le 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 de la console Google Cloud pour récupérer les entrées de 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 relatives aux versions.

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

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 schémas de métadonnées Hive appropriés.

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 processus d'importation ou d'exportation peut dépasser le délai d'expiration des tâches. Si l'importation ne peut pas aboutir dans le délai d'expiration des tâches 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 échoue et le message d'erreur suivant s'affiche:

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 de l'associer à 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 gcloud CLI ou si le comportement de la commande diffère de celui indiqué dans la documentation, essayez de mettre à jour la gcloud CLI:

gcloud components update

Étapes suivantes