Présentation
Une ressource Dataproc NodeGroup
est un groupe de nœuds de cluster Dataproc qui exécutent un rôle attribué. Cette page décrit le groupe de nœuds de pilotes, qui est un groupe de VM Compute Engine auxquelles le rôle Driver
est attribué afin d'exécuter des pilotes de tâches sur le cluster Dataproc.
Quand utiliser des groupes de nœuds de pilotes ?
- N'utilisez des groupes de nœuds de pilotes que lorsque vous devez exécuter plusieurs tâches simultanées sur un cluster partagé.
- Augmentez les ressources du nœud maître avant d'utiliser des groupes de nœuds de pilotes pour éviter les limites des groupes de nœuds de pilotes.
Comment les nœuds de pilote vous aident à exécuter des tâches simultanées
Dataproc lance un processus de pilote de tâches sur un nœud maître de cluster Dataproc pour chaque tâche. Le processus du pilote exécute à son tour un pilote d'application, tel que spark-submit
, en tant que processus enfant.
Toutefois, le nombre de tâches simultanées exécutées sur le nœud maître est limité par les ressources disponibles sur le nœud maître. Étant donné que les nœuds maîtres Dataproc ne peuvent pas faire l'objet d'un scaling, une tâche peut échouer ou être limitée lorsque les ressources du nœud maître sont insuffisantes pour exécuter une tâche.
Les groupes de nœuds de pilotes sont des groupes de nœuds spéciaux gérés par YARN, de sorte que la simultanéité des tâches n'est pas limitée par les ressources du nœud maître. Dans les clusters avec un groupe de nœuds de pilotes, les pilotes d'application s'exécutent sur les nœuds de pilotes. Chaque nœud de pilote peut exécuter plusieurs pilotes d'application s'il dispose de suffisamment de ressources.
Avantages
L'utilisation d'un cluster Dataproc avec un groupe de nœuds de pilote vous permet d'effectuer les opérations suivantes:
- Effectuer un scaling horizontal des ressources de pilotes de tâches pour exécuter davantage de jobs simultanés
- Effectuer le scaling des ressources de pilote séparément des ressources de nœud de calcul
- Bénéficiez d'un scaling à la baisse plus rapide sur les clusters d'images Dataproc 2.0+ et versions ultérieures. Sur ces clusters, le maître d'application s'exécute dans un pilote Spark au sein d'un groupe de nœuds de pilotes (
spark.yarn.unmanagedAM.enabled
est défini par défaut surtrue
). - Personnalisez le démarrage des nœuds de pilote. Vous pouvez ajouter
{ROLE} == 'Driver'
dans un script d'initialisation pour qu'il effectue des actions pour un groupe de nœuds de pilote dans la sélection des nœuds.
Limites
- Les groupes de nœuds ne sont pas compatibles avec les modèles de workflow Dataproc.
- Les clusters de groupes de nœuds ne peuvent pas être arrêtés, redémarrés ni soumis à un autoscaling.
- Le maître d'application MapReduce s'exécute sur des nœuds de calcul. Le scaling à la baisse des nœuds de calcul peut être lent si vous activez la mise hors service concertée.
- La simultanéité des jobs est affectée par la propriété de cluster
dataproc:agent.process.threads.job.max
. Par exemple, avec trois instances maîtres et que cette propriété est définie sur la valeur par défaut de100
, la simultanéité maximale des tâches au niveau du cluster est de300
.
Groupe de nœuds de pilote par rapport au mode de cluster Spark
Sélection | Mode de cluster Spark | Groupe de nœuds de pilotes |
---|---|---|
Scaling à la baisse des nœuds de calcul | Les pilotes de longue durée s'exécutent sur les mêmes nœuds de calcul que les conteneurs à courte durée de vie, ce qui ralentit le scaling à la baisse des nœuds de calcul grâce à la mise hors service concertée. | Les nœuds de calcul évoluent plus rapidement à la baisse lorsque les pilotes s'exécutent sur des groupes de nœuds. |
Sortie du pilote en streaming | Nécessite une recherche dans les journaux YARN pour trouver le nœud sur lequel le pilote a été planifié. | Le résultat du pilote est diffusé vers Cloud Storage. Il est visible dans la console Google Cloud et dans le résultat de la commande gcloud dataproc jobs wait une fois la tâche terminée. |
Autorisations IAM pour le groupe de nœuds de pilotes
Les autorisations IAM suivantes sont associées aux actions liées au groupe de nœuds Dataproc suivantes.
Autorisation | Action |
---|---|
dataproc.nodeGroups.create
|
Créer des groupes de nœuds Dataproc Si un utilisateur dispose de l'autorisation dataproc.clusters.create dans le projet, cette autorisation est accordée. |
dataproc.nodeGroups.get |
Obtenez les détails d'un groupe de nœuds Dataproc. |
dataproc.nodeGroups.update |
Redimensionnez un groupe de nœuds Dataproc. |
Opérations sur les groupes de nœuds de pilotes
Vous pouvez utiliser la gcloud CLI et l'API Dataproc pour créer, obtenir, redimensionner, supprimer et envoyer un job à un groupe de nœuds de pilotes Dataproc.
Créer un cluster de groupe de nœuds de pilote
Un groupe de nœuds de pilotes est associé à un cluster Dataproc. Vous créez un groupe de nœuds lors de la création d'un cluster Dataproc. Vous pouvez utiliser la gcloud CLI ou l'API REST Dataproc pour créer un cluster Dataproc avec un groupe de nœuds de pilotes.
gcloud
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --driver-pool-size=SIZE \ --driver-pool-id=NODE_GROUP_ID
Indicateurs requis:
- CLUSTER_NAME: nom du cluster, qui doit être unique au sein d'un projet. Le nom doit commencer par une lettre minuscule et peut contenir jusqu'à 51 caractères (lettres minuscules, chiffres et traits d'union). Il ne peut pas se terminer par un trait d'union. Le nom d'un cluster supprimé peut être réutilisé.
- REGION: région dans laquelle se trouve le cluster.
- SIZE: nombre de nœuds de pilote dans le groupe de nœuds. Le nombre de nœuds nécessaires dépend de la charge de tâches et du type de machine du pool de pilotes. Le nombre minimum de nœuds de groupe de pilotes est égal à la mémoire totale ou au nombre total de processeurs virtuels requis par les pilotes de tâches, divisé par la mémoire machine ou les processeurs virtuels de chaque pool de pilotes.
- NODE_GROUP_ID: facultatif et recommandé. L'ID doit être unique au sein du cluster. Utilisez cet ID pour identifier le groupe de pilotes lors d'opérations futures, telles que le redimensionnement du groupe de nœuds. S'il n'est pas spécifié, Dataproc génère l'ID du groupe de nœuds.
Indicateur recommandé:
--enable-component-gateway
: ajoutez cet indicateur pour activer la passerelle des composants Dataproc, qui permet d'accéder à l'interface Web YARN. Les pages "Application" et "Scheduler" de l'interface utilisateur YARN affichent l'état du cluster et du job, la mémoire de la file d'attente de l'application, la capacité principale et d'autres métriques.
Options supplémentaires:les options driver-pool
facultatives suivantes peuvent être ajoutées à la commande gcloud dataproc clusters create
pour personnaliser le groupe de nœuds.
Option | Valeur par défaut |
---|---|
--driver-pool-id |
Identifiant de chaîne, généré par le service s'il n'est pas défini par l'option. Cet ID peut être utilisé pour identifier le groupe de nœuds lors de futures opérations sur le pool de nœuds, telles que son redimensionnement. |
--driver-pool-machine-type |
n1-standard-4 |
--driver-pool-accelerator |
Aucune valeur par défaut Lorsque vous spécifiez un accélérateur, le type de GPU est obligatoire. Le nombre de GPU est facultatif. |
--num-driver-pool-local-ssds |
Aucune valeur par défaut |
--driver-pool-local-ssd-interface |
Aucune valeur par défaut |
--driver-pool-boot-disk-type |
pd-standard |
--driver-pool-boot-disk-size |
1000 GB |
--driver-pool-min-cpu-platform |
AUTOMATIC |
REST
Complétez un AuxiliaryNodeGroup dans le cadre d'une requête cluster.create
de l'API Dataproc.
Avant d'utiliser les données de requête, effectuez les remplacements suivants:
- PROJECT_ID : valeur obligatoire. ID de projet Google Cloud
- REGION : valeur obligatoire. Région du cluster Dataproc.
- CLUSTER_NAME : valeur obligatoire. Nom du cluster, qui doit être unique au sein d'un projet. Le nom doit commencer par une lettre minuscule et peut contenir jusqu'à 51 caractères (lettres minuscules, chiffres et traits d'union). Il ne peut pas se terminer par un trait d'union. Le nom d'un cluster supprimé peut être réutilisé.
- SIZE : valeur obligatoire. Nombre de nœuds dans le groupe de nœuds.
- NODE_GROUP_ID : facultatif et recommandé. L'ID doit être unique au sein du cluster. Utilisez cet ID pour identifier le groupe de pilotes dans les opérations futures, telles que le redimensionnement du groupe de nœuds. S'il n'est pas spécifié, Dataproc génère l'ID du groupe de nœuds.
Options supplémentaires:consultez la section NodeGroup.
Méthode HTTP et URL :
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters
Corps JSON de la requête :
{ "clusterName":"CLUSTER_NAME", "config": { "softwareConfig": { "imageVersion":"" }, "endpointConfig": { "enableHttpPortAccess": true }, "auxiliaryNodeGroups": [{ "nodeGroup":{ "roles":["DRIVER"], "nodeGroupConfig": { "numInstances": SIZE } }, "nodeGroupId": "NODE_GROUP_ID" }] } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "projectId": "PROJECT_ID", "clusterName": "CLUSTER_NAME", "config": { ... "auxiliaryNodeGroups": [ { "nodeGroup": { "name": "projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAME/nodeGroups/NODE_GROUP_ID", "roles": [ "DRIVER" ], "nodeGroupConfig": { "numInstances": SIZE, "instanceNames": [ "CLUSTER_NAME-np-q1gp", "CLUSTER_NAME-np-xfc0" ], "imageUri": "https://www.googleapis.com/compute/v1/projects/cloud-dataproc-ci/global/images/dataproc-2-0-deb10-...-rc01", "machineTypeUri": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/REGION-a/machineTypes/n1-standard-4", "diskConfig": { "bootDiskSizeGb": 1000, "bootDiskType": "pd-standard" }, "managedGroupConfig": { "instanceTemplateName": "dataproc-2a8224d2-...", "instanceGroupManagerName": "dataproc-2a8224d2-..." }, "minCpuPlatform": "AUTOMATIC", "preemptibility": "NON_PREEMPTIBLE" } }, "nodeGroupId": "NODE_GROUP_ID" } ] }, }
Obtenir les métadonnées du cluster de groupe de nœuds de pilote
Vous pouvez utiliser la commande gcloud dataproc node-groups describe ou l'API Dataproc pour obtenir les métadonnées du groupe de nœuds du pilote.
gcloud
gcloud dataproc node-groups describe NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION
Indicateurs requis:
- NODE_GROUP_ID: vous pouvez exécuter
gcloud dataproc clusters describe CLUSTER_NAME
pour répertorier l'ID du groupe de nœuds. - CLUSTER_NAME: nom du cluster.
- REGION: région du cluster.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants:
- PROJECT_ID : valeur obligatoire. ID de projet Google Cloud
- REGION : valeur obligatoire. Région du cluster.
- CLUSTER_NAME : valeur obligatoire. Nom du cluster.
- NODE_GROUP_ID : valeur obligatoire. Vous pouvez exécuter
gcloud dataproc clusters describe CLUSTER_NAME
pour répertorier l'ID du groupe de nœuds.
Méthode HTTP et URL :
GET https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAMEnodeGroups/Node_GROUP_ID
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAME/nodeGroups/NODE_GROUP_ID", "roles": [ "DRIVER" ], "nodeGroupConfig": { "numInstances": 5, "imageUri": "https://www.googleapis.com/compute/v1/projects/cloud-dataproc-ci/global/images/dataproc-2-0-deb10-...-rc01", "machineTypeUri": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/REGION-a/machineTypes/n1-standard-4", "diskConfig": { "bootDiskSizeGb": 1000, "bootDiskType": "pd-standard" }, "managedGroupConfig": { "instanceTemplateName": "dataproc-driver-pool-mcia3j656h2fy", "instanceGroupManagerName": "dataproc-driver-pool-mcia3j656h2fy" }, "minCpuPlatform": "AUTOMATIC", "preemptibility": "NON_PREEMPTIBLE" } }
Redimensionner un groupe de nœuds de pilotes
Vous pouvez utiliser la commande gcloud dataproc node-groups rename ou l'API Dataproc pour ajouter ou supprimer des nœuds de pilotes dans un groupe de nœuds de pilotes de cluster.
gcloud
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=SIZE
Indicateurs requis:
- NODE_GROUP_ID: vous pouvez exécuter
gcloud dataproc clusters describe CLUSTER_NAME
pour répertorier l'ID du groupe de nœuds. - CLUSTER_NAME: nom du cluster.
- REGION: région du cluster.
- SIZE: spécifie le nouveau nombre de nœuds de pilote dans le groupe de nœuds.
Option facultative:
--graceful-decommission-timeout=TIMEOUT_DURATION
: lors du scaling à la baisse d'un groupe de nœuds, vous pouvez ajouter cet indicateur pour spécifier une mise hors service concertée TIMEOUT_DURATION, afin d'éviter l'arrêt immédiat des pilotes de tâches. Recommandation:Définissez un délai avant expiration au moins égal à la durée de la tâche la plus longue exécutée sur le groupe de nœuds (la récupération des pilotes défaillants n'est pas prise en charge).
Exemple: gcloud CLI NodeGroup
scale up commande:
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=4
Exemple: commande de scaling à la baisse de la gcloud CLI NodeGroup
:
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=1 \ --graceful-decommission-timeout="100s"
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants:
- PROJECT_ID : valeur obligatoire. ID de projet Google Cloud
- REGION : valeur obligatoire. Région du cluster.
- NODE_GROUP_ID : valeur obligatoire. Vous pouvez exécuter
gcloud dataproc clusters describe CLUSTER_NAME
pour répertorier l'ID du groupe de nœuds. - SIZE : valeur obligatoire. Nouveau nombre de nœuds dans le groupe de nœuds.
- TIMEOUT_DURATION : facultatif. Lors du scaling à la baisse d'un groupe de nœuds, vous pouvez ajouter un
gracefulDecommissionTimeout
au corps de la requête pour éviter l'arrêt immédiat des pilotes de tâches. Recommandation:Définissez un délai avant expiration au moins égal à la durée de la tâche la plus longue exécutée sur le groupe de nœuds (la récupération des pilotes défaillants n'est pas disponible).Exemple :
{ "size": SIZE, "gracefulDecommissionTimeout": "TIMEOUT_DURATION" }
Méthode HTTP et URL :
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAME/nodeGroups/Node_GROUP_ID:resize
Corps JSON de la requête :
{ "size": SIZE, }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID/regions/REGION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.dataproc.v1.NodeGroupOperationMetadata", "nodeGroupId": "NODE_GROUP_ID", "clusterUuid": "CLUSTER_UUID", "status": { "state": "PENDING", "innerState": "PENDING", "stateStartTime": "2022-12-01T23:34:53.064308Z" }, "operationType": "RESIZE", "description": "Scale "up or "down" a GCE node pool to SIZE nodes." } }
Supprimer un cluster de groupe de nœuds de pilote
Lorsque vous supprimez un cluster Dataproc, les groupes de nœuds qui lui sont associés sont supprimés.
Envoyer un job
Vous pouvez utiliser la commande gcloud dataproc jobs submit ou l'API Dataproc pour envoyer une tâche à un cluster avec un groupe de nœuds de pilote.
gcloud
gcloud dataproc jobs submit JOB_COMMAND \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=DRIVER_MEMORY \ --driver-required-vcores=DRIVER_VCORES \ DATAPROC_FLAGS \ -- JOB_ARGS
Indicateurs requis:
- JOB_COMMAND: spécifiez la commande de tâche.
- CLUSTER_NAME: nom du cluster.
- DRIVER_MEMORY: quantité de mémoire des pilotes de job (en Mo) nécessaire pour exécuter une tâche (consultez la section Commandes de mémoire Yarn).
- DRIVER_VCORES: nombre de processeurs virtuels requis pour exécuter un job.
Options supplémentaires:
- DATAPROC_FLAGS: ajoutez d'autres options gcloud dataproc jobs submit liées au type de tâche.
- JOB_ARGS: ajoutez tous les arguments (après
--
à transmettre à la tâche).
Exemples:Vous pouvez exécuter les exemples suivants à partir d'une session de terminal SSH sur un cluster de groupe de nœuds de pilote Dataproc.
Job Spark pour estimer la valeur de
pi
:gcloud dataproc jobs submit spark \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ --class=org.apache.spark.examples.SparkPi \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ -- 1000
Job de décompte de mots Spark:
gcloud dataproc jobs submit spark \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ --class=org.apache.spark.examples.JavaWordCount \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ -- 'gs://apache-beam-samples/shakespeare/macbeth.txt'
Job PySpark pour estimer la valeur de
pi
:gcloud dataproc jobs submit pyspark \ file:///usr/lib/spark/examples/src/main/python/pi.py \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ -- 1000
Tâche MapReduce Hadoop TeraGen:
gcloud dataproc jobs submit hadoop \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ --jar file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \ -- teragen 1000 \ hdfs:///gen1/test
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants:
- PROJECT_ID : valeur obligatoire. ID de projet Google Cloud
- REGION : valeur obligatoire. Région du cluster Dataproc
- CLUSTER_NAME : valeur obligatoire. Nom du cluster, qui doit être unique au sein d'un projet. Le nom doit commencer par une lettre minuscule et peut contenir jusqu'à 51 caractères (lettres minuscules, chiffres et traits d'union). Il ne peut pas se terminer par un trait d'union. Le nom d'un cluster supprimé peut être réutilisé.
- DRIVER_MEMORY : valeur obligatoire. Quantité de mémoire des pilotes de jobs, en Mo, nécessaire à l'exécution d'une tâche (consultez la section Contrôles de mémoire du fil).
- DRIVER_VCORES : valeur obligatoire. Nombre de processeurs virtuels requis pour exécuter un job.
pi
).
Méthode HTTP et URL :
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/jobs:submit
Corps JSON de la requête :
{ "job": { "placement": { "clusterName": "CLUSTER_NAME", }, "driverSchedulingConfig": { "memoryMb]": DRIVER_MEMORY, "vcores": DRIVER_VCORES }, "sparkJob": { "jarFileUris": "file:///usr/lib/spark/examples/jars/spark-examples.jar", "args": [ "10000" ], "mainClass": "org.apache.spark.examples.SparkPi" } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "reference": { "projectId": "PROJECT_ID", "jobId": "job-id" }, "placement": { "clusterName": "CLUSTER_NAME", "clusterUuid": "cluster-Uuid" }, "sparkJob": { "mainClass": "org.apache.spark.examples.SparkPi", "args": [ "1000" ], "jarFileUris": [ "file:///usr/lib/spark/examples/jars/spark-examples.jar" ] }, "status": { "state": "PENDING", "stateStartTime": "start-time" }, "jobUuid": "job-Uuid" }
Afficher les journaux de jobs
Pour afficher l'état du job et vous aider à déboguer les problèmes associés, vous pouvez afficher les journaux des pilotes à l'aide de gcloud CLI ou de la console Google Cloud.
gcloud
Les journaux des pilotes de tâches sont transmis à la sortie de la gcloud CLI ou à la console Google Cloud lors de l'exécution de la tâche. Les journaux des pilotes sont conservés dans un bucket de préproduction du cluster Dataproc dans Cloud Storage.
Exécutez la commande gcloud CLI suivante pour répertorier l'emplacement des journaux de pilotes dans Cloud Storage:
gcloud dataproc jobs describe JOB_ID \ --region=REGION
L'emplacement Cloud Storage des journaux des pilotes est indiqué comme driverOutputResourceUri
dans le résultat de la commande, au format suivant:
driverOutputResourceUri: gs://CLUSTER_STAGING_BUCKET/google-cloud-dataproc-metainfo/CLUSTER_UUID/jobs/JOB_ID
Console
Pour afficher les journaux de cluster d'un groupe de nœuds:
Pour rechercher des journaux, vous pouvez utiliser le format de requête suivant de l'explorateur de journaux:
resource.type="cloud_dataproc_cluster" resource.labels.project_id="PROJECT_ID" resource.labels.cluster_name="CLUSTER_NAME" log_name="projects/PROJECT_ID/logs/LOG_TYPE>"
Remplacez les éléments suivants :- PROJECT_ID : ID de projet Google Cloud.
- CLUSTER_NAME: nom du cluster.
- LOG_TYPE:
- Journaux utilisateur Yarn:
yarn-userlogs
- Journaux du gestionnaire de ressources Yarn:
hadoop-yarn-resourcemanager
- Journaux du gestionnaire de nœuds Yarn:
hadoop-yarn-nodemanager
- Journaux utilisateur Yarn:
Surveiller les métriques
Les pilotes de tâches de groupe de nœuds Dataproc s'exécutent dans une file d'attente enfant dataproc-driverpool-driver-queue
sur une partition dataproc-driverpool
.
Métriques des groupes de nœuds de pilotes
Le tableau suivant répertorie les métriques de pilote de groupe de nœuds associées, qui sont collectées par défaut pour les groupes de nœuds de pilotes.
Métrique du groupe de nœuds de pilotes | Description |
---|---|
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB |
Quantité de mémoire disponible en mébioctets dans dataproc-driverpool-driver-queue dans la partition dataproc-driverpool .
|
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers |
Nombre de conteneurs en attente (en file d'attente) dans dataproc-driverpool-driver-queue dans la partition dataproc-driverpool . |
Métriques de la file d'attente enfant
Le tableau suivant répertorie les métriques de la file d'attente enfant. Les métriques sont collectées par défaut pour les groupes de nœuds de pilotes et peuvent être activées pour la collecte sur n'importe quel cluster Dataproc.
Métrique de la file d'attente enfant | Description |
---|---|
yarn:ResourceManager:ChildQueueMetrics:AvailableMB |
Quantité de mémoire disponible en mébioctets dans cette file d'attente, sous la partition par défaut. |
yarn:ResourceManager:ChildQueueMetrics:PendingContainers |
Nombre de conteneurs en attente (en file d'attente) dans cette file d'attente, sous la partition par défaut. |
yarn:ResourceManager:ChildQueueMetrics:running_0 |
Nombre de tâches dont l'environnement d'exécution est compris entre 0 et 60 minutes dans cette file d'attente, pour toutes les partitions. |
yarn:ResourceManager:ChildQueueMetrics:running_60 |
Nombre de tâches dont l'environnement d'exécution est compris entre 60 et 300 minutes dans cette file d'attente, pour toutes les partitions. |
yarn:ResourceManager:ChildQueueMetrics:running_300 |
Nombre de tâches dont l'environnement d'exécution est compris entre 300 et 1440 minutes dans cette file d'attente, pour toutes les partitions. |
yarn:ResourceManager:ChildQueueMetrics:running_1440 |
Nombre de tâches dont l'exécution est supérieure à 1440 minutes dans cette file d'attente, pour toutes les partitions. |
yarn:ResourceManager:ChildQueueMetrics:AppsSubmitted |
Nombre d'applications envoyées à cette file d'attente dans toutes les partitions. |
Pour afficher YARN ChildQueueMetrics
et DriverPoolsQueueMetrics
dans la console Google Cloud:
- Sélectionnez Instance de VM → Ressources personnalisées dans l'Explorateur de métriques.
Débogage du pilote de tâches de groupe de nœuds
Cette section fournit les conditions et les erreurs du groupe de nœuds de pilotes, ainsi que des recommandations pour corriger la condition ou l'erreur.
Conditions
Condition:
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB
s'approche de0
. Cela indique que la file d'attente des pools de pilotes de cluster est à court de mémoire.Recommandation : Augmentez la taille du pool de pilotes.
Condition:
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers
est supérieur à 0. Cela peut indiquer que la file d'attente des pools de pilotes de cluster est à court de mémoire et que YARN met des tâches en file d'attente.Recommandation : Augmentez la taille du pool de pilotes.
Erreurs
Erreur :
Cluster <var>CLUSTER_NAME</var> requires driver scheduling config to run SPARK job because it contains a node pool with role DRIVER. Positive values are required for all driver scheduling config values.
Recommandation:Définissez
driver-required-memory-mb
etdriver-required-vcores
sur des nombres positifs.Erreur:
Container exited with a non-zero exit code 137
.Recommandation:Augmentez
driver-required-memory-mb
pour l'utilisation de la mémoire par le job.