Ce document explique les messages d'erreur courants liés à la création de clusters et fournit des conseils pour résoudre les problèmes de création de clusters.
Messages d'erreur courants lors de la création d'un cluster
L'utilisateur n'est pas autorisé à agir en tant que compte de service
Cause : Le compte principal qui tente de créer le cluster Managed Service pour Apache Spark ne dispose pas des autorisations nécessaires pour utiliser le compte de service spécifié. Les utilisateurs de Managed Service pour Apache Spark doivent disposer de l'autorisation de compte de service
ActAspour déployer des ressources Managed Service pour Apache Spark. Cette autorisation est incluse dans le rôle Utilisateur du compte de service (roles/iam.serviceAccountUser) (voir Rôles Managed Service pour Apache Spark).Solution : identifiez l'utilisateur ou le compte de service qui tente de créer le cluster Managed Service pour Apache Spark. Attribuez à ce compte principal le rôle Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur le compte de service que le cluster est configuré pour utiliser (généralement, le compte de service de VM Managed Service pour Apache Spark).Délai d'expiration de l'opération : seuls 0 datanodes/gestionnaires de nœuds sur les deux requis sont en cours d'exécution.
Cause : le nœud du contrôleur ne peut pas créer le cluster, car il ne peut pas communiquer avec les nœuds de calcul.
Solution :
- Vérifiez les avertissements concernant les règles de pare-feu.
- Assurez-vous que les règles de pare-feu appropriées sont en place. Pour en savoir plus, consultez Présentation des règles de pare-feu par défaut de Managed Service pour Apache Spark.
- Effectuez un test de connectivité dans la console Google Cloud pour déterminer ce qui bloque la communication entre le contrôleur et les nœuds de calcul.
Autorisation
compute.subnetworks.userequise pourprojects/{projectId}/regions/{region}/subnetworks/{subnetwork}Cause : Cette erreur peut se produire lorsque vous tentez de configurer un cluster Managed Service pour Apache Spark à l'aide d'un réseau VPC dans un autre projet et que le compte de service de l'agent de service Managed Service pour Apache Spark ne dispose pas des autorisations nécessaires sur le projet de VPC partagé qui héberge le réseau.
Solution: suivez la procédure décrite dans la section Créer un cluster utilisant un réseau VPC dans un autre projet.
La zone
projects/zones/{zone}ne dispose pas de suffisamment de ressources pour traiter la requête(resource type:compute)Cause: La zone utilisée pour créer le cluster ne dispose pas de ressources suffisantes.
Solution :
- Utilisez la fonctionnalité de sélection de zone automatique de Managed Service pour Apache Spark pour créer le cluster dans n'importe quelle zone d'une région disposant de ressources disponibles.
- Créez le cluster dans une autre zone.
Erreurs de dépassement de quota
Quota de CPUS/CPUS_ALL_REGIONS insuffisant
Quota insuffisant pour "DISKS_TOTAL_GB"
Quota insuffisant pour "IN_USE_ADDRESSES"Cause: votre requête de processeur, de disque ou d'adresse IP dépasse votre quota disponible.
Solution : demandez un quota supplémentaire depuis la consoleGoogle Cloud .
Échec de l'action d'initialisation
Cause: l'installation de l'action d'initialisation fournie lors de la création du cluster a échoué.
Solution :
- Consultez les consignes et remarques importantes concernant les actions d'initialisation.
- Examinez les journaux de sortie. Le message d'erreur doit fournir un lien vers les journaux dans Cloud Storage.
Échec de l'initialisation du nœud
CLUSTER-NAME-m. ... See output in:<gs://PATH_TO_STARTUP_SCRIPT_OUTPUT>Cause : Échec de l'initialisation du nœud du contrôleur de cluster Managed Service pour Apache Spark.
Solution :
- Examinez les journaux de sortie du script de démarrage listés dans le message d'erreur (
gs://PATH_TO_STARTUP_SCRIPT_OUTPUT) et vérifiez la cause de l'échec de l'initialisation du nœud. - Les causes peuvent inclure des problèmes de configuration réseau du cluster Managed Service pour Apache Spark et l'échec de l'installation des dépendances du package Python.
- Si le problème n'est pas résolu après avoir examiné les journaux du script de démarrage, résolvez les problèmes côté utilisateur, puis réessayez avec un intervalle exponentiel entre les tentatives, contactez l'assistance Google Cloud.
- Examinez les journaux de sortie du script de démarrage listés dans le message d'erreur (
Échec de la création du cluster : espace d'adresses IP épuisé
Cause : l'espace d'adresses IP nécessaire pour provisionner les nœuds de cluster demandés n'est pas disponible.
Solution :
- Créez un cluster avec moins de nœuds de calcul, mais un type de machine plus grand.
- Créez un cluster sur un autre sous-réseau ou réseau.
- Réduisez l'utilisation sur le réseau pour libérer de l'espace d'adresses IP.
- Attendez qu'un espace d'adresses IP suffisant soit disponible sur le réseau.
Message d'erreur du script d'initialisation : Le dépôt REPO_NAME ne contient plus de fichier Release
Cause : Le dépôt de rétroportages Debian oldstable a été purgé.
Solution :
Ajoutez le code suivant avant le code qui exécute
apt-getdans votre script d'initialisation.oldstable=$(curl -s https://deb.debian.org/debian/dists/oldstable/Release | awk '/^Codename/ {print $2}'); stable=$(curl -s https://deb.debian.org/debian/dists/stable/Release | awk '/^Codename/ {print $2}'); matched_files="$(grep -rsil '\-backports' /etc/apt/sources.list*)" if [[ -n "$matched_files" ]]; then for filename in "$matched_files"; do grep -e "$oldstable-backports" -e "$stable-backports" "$filename" || \ sed -i -e 's/^.*-backports.*$//' "$filename" done fiDélai d'attente dépassé pour l'instance
DATAPROC_CLUSTER_VM_NAMEou Réseau inaccessible :dataproccontrol-REGION.googleapis.comCause : Ces messages d'erreur indiquent que la configuration réseau de votre cluster Managed Service pour Apache Spark est incomplète. Il se peut que la route vers la passerelle Internet par défaut ou les règles de pare-feu soient manquantes.
Solution :
Pour résoudre ce problème, vous pouvez créer les tests de connectivité suivants :
- Créez un test de connectivité entre deux VM de cluster Managed Service pour Apache Spark. Le résultat de ce test vous aidera à déterminer si les règles de pare-feu d'autorisation d'entrée ou de sortie de votre réseau s'appliquent correctement aux VM du cluster.
- Créez un test de connectivité entre une VM de cluster Managed Service pour Apache Spark et une adresse IP actuelle de l'API de contrôle Managed Service pour Apache Spark. Pour obtenir l'adresse IP actuelle de l'API de contrôle Managed Service pour Apache Spark, utilisez la commande suivante :
dig dataproccontrol-REGION.googleapis.com A
Utilisez l'une des adresses IPv4 de la section de réponse de la sortie.
Le résultat du test de connectivité vous aidera à déterminer si la route vers la passerelle Internet par défaut et le pare-feu d'autorisation de sortie sont correctement configurés.
En fonction des résultats des tests de connectivité :
- Ajoutez une route vers Internet au réseau VPC de votre cluster :
0.0.0.0/0pour IPv4 et::/0pour IPv6 avec--next-hop-gateway=default-internet-gateway. - Ajoutez des règles de pare-feu pour le contrôle des accès.
Erreur due à la mise à jour
Cause : le cluster a accepté un job envoyé au service Managed Service pour Apache Spark, mais n'a pas pu effectuer de scaling à la hausse ou à la baisse manuellement ou par autoscaling. Cette erreur peut également être due à une configuration de cluster non standard.
Solution :
Réinitialisation du cluster : ouvrez une demande d'assistance, incluez un fichier tar de diagnostic et demandez la réinitialisation du cluster à l'état RUNNING.
Nouveau cluster : recréez le cluster avec la même configuration. Cette solution peut être plus rapide qu'une réinitialisation effectuée par l'assistance.
Conseils de dépannage des clusters
Cette section fournit des conseils supplémentaires pour résoudre les problèmes courants qui peuvent empêcher la création de clusters Managed Service pour Apache Spark.
Lorsqu'un cluster Managed Service pour Apache Spark ne parvient pas à être provisionné, il génère souvent un message d'erreur générique ou signale un état PENDING ou PROVISIONING avant d'échouer. Pour diagnostiquer et résoudre les problèmes de défaillance d'un cluster, il est essentiel d'examiner les journaux du cluster et d'évaluer les points de défaillance courants.
Symptômes courants
Voici les symptômes courants associés aux échecs de création de cluster :
- L'état du cluster reste
PENDINGouPROVISIONINGpendant une période prolongée. - Le cluster passe à l'état
ERROR. - Erreurs d'API génériques lors de la création du cluster, telles que
Operation timed out. Messages d'erreur enregistrés ou de réponse de l'API, par exemple :
RESOURCE_EXHAUSTED: lié aux quotas de processeur, de disque ou d'adresse IPInstance failed to startPermission deniedUnable to connect to service_name.googleapis.comouCould not reach required Google APIsConnection refusedounetwork unreachable- Erreurs liées à l'échec des actions d'initialisation, telles que les erreurs d'exécution de script et les fichiers introuvables.
Examiner les journaux de cluster
Une étape initiale importante lors du diagnostic des échecs de création de cluster consiste à examiner les journaux de cluster détaillés disponibles dans Cloud Logging.
- Accédez à l'explorateur de journaux dans la console Google Cloud .
- Filtrer les clusters Managed Service pour Apache Spark :
- Dans la liste déroulante Ressource, sélectionnez
Cloud Managed Service for Apache Spark Cluster. - Saisissez votre
cluster_nameet votreproject_id. Vous pouvez également filtrer parlocation(région).
- Dans la liste déroulante Ressource, sélectionnez
- Examinez les entrées de journal :
- Recherchez les messages de niveau
ERRORouWARNINGqui se produisent à un moment proche de l'échec de la création du cluster. - Prêtez attention aux journaux des composants
master-startup,worker-startupetagentpour obtenir des informations sur les problèmes liés aux agents au niveau de la VM ou de Managed Service pour Apache Spark. - Pour obtenir des informations sur les problèmes de démarrage des VM, filtrez les journaux par
resource.type="gce_instance"et recherchez les messages provenant des noms d'instance associés à vos nœuds de cluster, tels queCLUSTER_NAME-mouCLUSTER_NAME-w-0. Les journaux de la console série peuvent révéler des problèmes de configuration réseau, des problèmes de disque et des échecs de script qui se produisent au début du cycle de vie de la VM.
- Recherchez les messages de niveau
Causes courantes d'échec de cluster et conseils de dépannage
Cette section présente les raisons courantes pour lesquelles la création d'un cluster Managed Service pour Apache Spark peut échouer et fournit des conseils pour résoudre les défaillances de cluster.
Autorisations IAM insuffisantes
Le compte de service de VM utilisé par votre cluster Managed Service pour Apache Spark doit disposer des rôles IAM appropriés pour provisionner des instances Compute Engine, accéder aux buckets Cloud Storage, écrire des journaux et interagir avec d'autres services Google Cloud .
- Rôle de nœud de calcul requis : vérifiez que le compte de service de la VM dispose du rôle Nœud de calcul Managed Service pour Apache Spark (
roles/dataproc.worker). Ce rôle dispose des autorisations minimales requises pour que Managed Service pour Apache Spark gère les ressources du cluster. - Autorisations d'accès aux données : si vos jobs lisent ou écrivent des données dans Cloud Storage ou BigQuery, le compte de service doit disposer des rôles associés, tels que
Storage Object Viewer,Storage Object CreatorouStorage Object Adminpour Cloud Storage, ouBigQuery Data ViewerouBigQuery Editorpour BigQuery. - Autorisations de journalisation : le compte de service doit disposer d'un rôle avec les autorisations nécessaires pour écrire des journaux dans Cloud Logging, comme le rôle
Logging Writer.
Conseils de dépannage
Identifiez le compte de service : déterminez le compte de service de VM que votre cluster est configuré pour utiliser. Si aucune valeur n'est spécifiée, le compte de service Compute Engine par défaut est utilisé.
Vérifiez les rôles IAM : accédez à la page IAM et administration > IAM dans la console Google Cloud , recherchez le compte de service de la VM du cluster, puis vérifiez qu'il dispose des rôles nécessaires pour les opérations du cluster. Attribuez les rôles manquants.
Quotas de ressources dépassés
Les clusters Managed Service pour Apache Spark consomment des ressources de Compute Engine et d'autres services Google Cloud . Le dépassement des quotas de projet ou régionaux peut entraîner l'échec de la création du cluster.
- Quotas Managed Service pour Apache Spark courants à vérifier :
CPUs(régional)DISKS_TOTAL_GB(régional)IN_USE_ADDRESSES(régional pour les adresses IP internes, global pour les adresses IP externes)- Quotas de l'API Dataproc, tels que
ClusterOperationRequestsPerMinutePerProjectPerRegion
Conseils de dépannage
- Vérifiez les quotas : accédez à la page IAM et administration > IAM dans la console Google Cloud . Filtrez par "Service" pour "API Compute Engine" et "API Dataproc".
- Vérifier l'utilisation par rapport à la limite : identifiez les quotas qui ont atteint ou sont proches de leur limite.
- Si nécessaire, demandez une augmentation de quota.
Problèmes de configuration réseau
Les problèmes de configuration réseau, tels qu'une configuration incorrecte du réseau VPC, du sous-réseau, du pare-feu ou du DNS, sont une cause fréquente d'échec de la création de clusters. Les instances de cluster doivent pouvoir communiquer entre elles et avec les API Google.
- Réseau et sous-réseau VPC :
- Vérifiez que le réseau et le sous-réseau VPC du cluster existent et sont correctement configurés.
- Vérifiez que le sous-réseau dispose d'une plage d'adresses IP disponibles suffisante.
- Accès privé à Google (PGA) : si les VM du cluster ont des adresses IP internes et doivent accéder aux API Google pour Cloud Storage, Cloud Logging et d'autres opérations, vérifiez que l'accès privé à Google est activé sur le sous-réseau. Par défaut, les clusters Managed Service pour Apache Spark créés avec des versions d'image 2.2 ou ultérieures provisionnent des VM avec des adresses IP internes uniquement, avec l'accès privé à Google activé sur le sous-réseau régional du cluster.
- Private Service Connect (PSC) : si vous utilisez Private Service Connect pour accéder aux API Google, vérifiez que les points de terminaison Private Service Connect nécessaires sont correctement configurés pour les API Google dont dépend Managed Service for Apache Spark, telles que
dataproc.googleapis.com,storage.googleapis.com,compute.googleapis.cometlogging.googleapis.com. Les entrées DNS des API doivent correspondre à des adresses IP privées. Notez que l'utilisation de Private Service Connect ne supprime pas la nécessité d'utiliser l'appairage de VPC pour communiquer avec d'autres réseaux VPC gérés par le client. - Appairage de VPC : si votre cluster communique avec des ressources d'autres réseaux VPC, comme des projets hôtes de VPC partagé ou d'autres VPC clients, vérifiez que l'appairage de VPC est correctement configuré et que les routes sont propagées.
Règles de pare-feu :
- Règles par défaut : vérifiez que les règles de pare-feu par défaut, telles que
allow-internalouallow-ssh, ne sont pas trop restrictives. Règles personnalisées : si des règles de pare-feu personnalisées sont en place, vérifiez qu'elles autorisent les chemins de communication nécessaires :
- Communication interne au sein du cluster (entre les nœuds -m et -w).
Trafic sortant des VM du cluster vers les API Google, à l'aide d'adresses IP publiques ou d'une passerelle Internet, de l'accès privé à Google ou de points de terminaison Private Service Connect.
Le trafic vers les sources de données ou services externes dont dépendent vos jobs.
- Règles par défaut : vérifiez que les règles de pare-feu par défaut, telles que
Résolution DNS : vérifiez que les instances de cluster peuvent résoudre correctement les noms DNS pour les API Google et tous les services internes ou externes.
Conseils de dépannage
- Vérifiez la configuration réseau : inspectez les paramètres du réseau VPC et du sous-réseau où le cluster est déployé.
- Vérifiez les règles de pare-feu : examinez les règles de pare-feu dans le réseau VPC ou le projet hôte de VPC partagé.
- Testez la connectivité : lancez une VM Compute Engine temporaire dans le sous-réseau du cluster et procédez comme suit :
pingoucurlvers des domaines d'API Google externes, tels questorage.googleapis.com.nslookuppour vérifier la résolution DNS vers les adresses IP attendues (Accès privé à Google ou Private Service Connect).- Exécutez des tests de connectivité Google Cloud pour diagnostiquer les chemins d'accès d'une VM de test aux points de terminaison pertinents.
Échecs des actions d'initialisation
Les actions d'initialisation de Managed Service pour Apache Spark sont des scripts qui s'exécutent sur les VM du cluster lors de sa création. Les erreurs dans ces scripts peuvent empêcher le démarrage du cluster.
Conseils de dépannage
- Examinez les journaux pour détecter les erreurs d'action d'initialisation : recherchez les entrées de journal liées à
init-actionsoustartup-scriptpour les instances de cluster dans Cloud Logging. - Vérifiez les chemins d'accès et les autorisations des scripts : vérifiez que les scripts d'action d'initialisation se trouvent bien dans Cloud Storage et que le compte de service de la VM du cluster dispose du rôle
Storage Object Viewernécessaire pour lire les scripts Cloud Storage. - Déboguez la logique du script : testez la logique du script sur une VM Compute Engine distincte qui imite l'environnement du cluster pour identifier les erreurs. Ajoutez la journalisation détaillée au script.
Disponibilité des ressources régionales (ruptures de stock)
Il peut arriver qu'un type de machine ou une ressource d'une région ou d'une zone soit temporairement indisponible (rupture de stock). En règle générale, cela entraîne des erreurs RESOURCE_EXHAUSTED qui ne sont pas liées à des problèmes de quota de projet.
Conseils de dépannage
- Essayez une autre zone ou région : essayez de créer le cluster dans une autre zone de la même région ou dans une autre région.
- Utilisez la sélection de zone automatique : utilisez la fonctionnalité de sélection de zone automatique de Managed Service pour Apache Spark pour sélectionner automatiquement une zone disposant de capacité.
- Ajustez le type de machine : si vous utilisez un type de machine personnalisé ou spécialisé, essayez un type de machine standard pour voir si cela résout le problème.
Contacter Cloud Customer Care
Si vous continuez à rencontrer des problèmes de défaillance de cluster, contactez Cloud Customer Care. Décrivez le problème de défaillance du cluster et les étapes de dépannage effectuées. Fournissez également les informations suivantes :
- Données de diagnostic du cluster
- Résultat de la commande suivante :
gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION
- Journaux exportés pour le cluster défaillant.
Utiliser l'outil gcpdiag
gcpdiag est un outil Open Source. Il ne s'agit pas d'un produit Google Cloud officiellement pris en charge.
Vous pouvez utiliser l'outil gcpdiag pour vous aider à identifier et à résoudre les problèmes liés au projet Google Cloud. Pour plus d'informations, consultez le projet gcpdiag sur GitHub.
L'outil gcpdiag vous aide à identifier les problèmes de création de clusters Managed Service pour Apache Spark suivants en effectuant les vérifications suivantes :
- Erreurs liées à une indisponibilité : évalue les journaux de l'explorateur de journaux pour détecter les indisponibilités dans les régions et les zones.
- Quota insuffisant : vérifie la disponibilité des quotas dans le projet de cluster Managed Service pour Apache Spark.
- Configuration réseau incomplète : effectue des tests de connectivité réseau, y compris des vérifications des règles de pare-feu nécessaires et de la configuration des adresses IP externes et internes. Si le cluster a été supprimé, l'outil
gcpdiagne peut pas effectuer de vérification de la connectivité réseau. - Configuration multiprojet incorrecte : vérifie les comptes de service multiprojets et examine les rôles supplémentaires et l'application des règles d'administration'administration.
- Rôles IAM de réseau de cloud privé virtuel partagé manquants : si le cluster Managed Service pour Apache Spark utilise un réseau VPC partagé, vérifie l'ajout des rôles de compte de service requis.
- Échecs des actions d'initialisation : évalue les journaux de l'explorateur de journaux pour détecter les échecs et les délais d'expiration des scripts d'action d'initialisation.
Pour obtenir la liste des étapes gcpdiag dataproc, y compris les étapes de création de cluster, consultez Étapes de Managed Service pour Apache Spark.
Exécuter la commande gcpdiag
Vous pouvez exécuter la commande gcpdiag depuis Cloud Shell dans la consoleGoogle Cloud ou dans un conteneur Docker.
ConsoleGoogle Cloud
- Terminez l'exécution, puis copiez la commande suivante.
- Ouvrez la console Google Cloud et activez Cloud Shell. Ouvrir la console Cloud
- Collez la commande copiée.
- Exécutez la commande
gcpdiag, qui télécharge l'image Dockergcpdiag, puis effectue des vérifications de diagnostic. Le cas échéant, suivez les instructions de sortie pour corriger les échecs de vérification.
gcpdiag runbook managed-spark/cluster-creation \
--parameter project_id=PROJECT_ID \
--parameter cluster_name=CLUSTER_NAME \
--parameter OPTIONAL_FLAGSDocker
Vous pouvez exécuter gcpdiag à l'aide d'un wrapper qui démarre gcpdiag dans un conteneur Docker. Docker ou Podman doivent être installés.
- Copiez et exécutez la commande suivante sur votre station de travail locale.
curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
- Exécutez la commande
gcpdiag../gcpdiag runbook managed-spark/cluster-creation \ --parameter project_id=PROJECT_ID \ --parameter cluster_name=CLUSTER_NAME \ --parameter OPTIONAL_FLAGS
Affichez les paramètres disponibles pour ce runbook.
Remplacez les éléments suivants :
- PROJECT_ID : ID du projet contenant la ressource.
- CLUSTER_NAME : nom du cluster Managed Service pour Apache Spark cible dans votre projet.
- OPTIONAL_PARAMETERS : ajoutez un ou plusieurs des paramètres facultatifs suivants. Ces paramètres sont obligatoires si le cluster a été supprimé.
cluster_uuid: UUID du cluster Managed Service pour Apache Spark cible dans votre projetservice_account: compte de service de VM du cluster Managed Service pour Apache Sparksubnetwork: chemin d'URI complet du sous-réseau du cluster Managed Service pour Apache Sparkinternal_ip_only: vrai ou fauxcross_project: ID multiprojet si le cluster Managed Service pour Apache Spark utilise un compte de service de VM dans un autre projet.
Options utiles :
--universe-domain: le cas échéant, le domaine Cloud souverain du partenaire de confiance hébergeant la ressource.--parameterou-p: paramètres du runbook.
Pour obtenir la liste et la description de toutes les options de l'outil gcpdiag, consultez les instructions d'utilisation de gcpdiag.
Étapes suivantes
- En savoir plus sur les outils de surveillance et de dépannage de Managed Service pour Apache Spark
- Découvrez comment diagnostiquer les clusters Managed Service pour Apache Spark.
- Consultez le document Questions fréquentes sur Managed Service pour Apache Spark.