Groupes de nœuds du pilote Dataproc

Présentation

Une ressource NodeGroup Dataproc 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 pilote, qui est un groupe de VM Compute Engine auxquelles le rôle Driver est attribué dans le but d'exécuter des pilotes de tâches sur le cluster Dataproc.

Quand utiliser des groupes de nœuds de pilote ?

  • N'utilisez des groupes de nœuds de pilote que lorsque vous devez exécuter de nombreuses 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 pilote pour éviter les limites des groupes de nœuds de pilote.

Comment les nœuds de pilote vous aident à exécuter des tâches concurrentes

Dataproc démarre un processus de pilote de tâche 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 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 être mis à l'échelle, 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 pilotes sont des groupes de nœuds spéciaux gérés par YARN. Par conséquent, 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 des nœuds de pilotes. Chaque nœud de pilote peut exécuter plusieurs pilotes d'application si le nœud dispose de ressources suffisantes.

Avantages

L'utilisation d'un cluster Dataproc avec un groupe de nœuds pilotes vous permet:

  • Évoluer horizontalement les ressources du pilote de tâche pour exécuter plus de tâches simultanées
  • Évoluer les ressources du pilote séparément des ressources des nœuds de calcul
  • Réduction plus rapide de l'échelle 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 dans un groupe de nœuds de pilote (spark.yarn.unmanagedAM.enabled est défini sur true par défaut).
  • Personnaliser le démarrage du nœud du pilote Vous pouvez ajouter {ROLE} == 'Driver' dans un script d'initialisation pour que le script effectue des actions pour un groupe de nœuds de pilote dans la sélection de 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 à l'autoscaling.
  • Le maître de l'application MapReduce s'exécute sur les nœuds de calcul. La réduction de la taille des nœuds de calcul peut être lente si vous activez le décommissionnement correct.
  • La simultanéité des tâches est affectée par la propriété de cluster dataproc:agent.process.threads.job.max. Par exemple, avec trois maîtres et cette propriété définie sur la valeur par défaut de 100, la simultanéité maximale des tâches au niveau du cluster est 300.

Comparaison du groupe de nœuds du pilote avec le mode de cluster Spark

Fonctionnalité Mode de cluster Spark Groupe de nœuds du pilote
Réduction du nombre de nœuds de calcul Les pilotes à durée de vie longue s'exécutent sur les mêmes nœuds de calcul que les conteneurs à durée de vie courte, ce qui ralentit la réduction de l'échelle des nœuds de calcul à l'aide de la mise hors service gérée. Les nœuds de calcul sont réduits plus rapidement lorsque les pilotes s'exécutent sur des groupes de nœuds.
Sortie du pilote en streaming Vous devez effectuer une recherche dans les journaux YARN pour trouver le nœud où le pilote a été planifié. La sortie du pilote est transmise en streaming à Cloud Storage et est visible dans la console Google Cloud et dans la sortie de la commande gcloud dataproc jobs wait une fois la tâche terminée.

Autorisations IAM du groupe de nœuds de pilote

Les autorisations IAM suivantes sont associées aux actions liées au groupe de nœuds Dataproc suivantes.

Autorisation Action
dataproc.nodeGroups.create Créez des groupes de nœuds Dataproc. Si un utilisateur dispose de 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 pilote

Vous pouvez utiliser gcloud CLI et l'API Dataproc pour créer, récupérer, redimensionner, supprimer et envoyer une tâche à un groupe de nœuds de pilote Dataproc.

Créer un cluster de groupes de nœuds de pilote

Un groupe de nœuds de pilote 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 gcloud CLI ou l'API REST Dataproc pour créer un cluster Dataproc avec un groupe de nœuds pilotes.

gcloud

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --driver-pool-size=SIZE \
    --driver-pool-id=NODE_GROUP_ID

Indicateurs obligatoires:

  • CLUSTER_NAME: nom du cluster, qui doit être unique dans 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 doit pas se terminer par un trait d'union. Le nom d'un cluster supprimé peut être réutilisé.
  • REGION: région dans laquelle se trouvera le cluster.
  • SIZE: nombre de nœuds de pilote dans le groupe de nœuds. Le nombre de nœuds requis dépend de la charge de travail et du type de machine du pool de pilotes. Le nombre de nœuds de groupe de pilotes minimaux est égal à la mémoire totale ou aux processeurs virtuels requis par les pilotes de tâches, divisé par la mémoire de la machine ou les processeurs virtuels de chaque pool de pilotes.
  • NODE_GROUP_ID: facultatif et recommandé. L'ID doit être unique dans le cluster. Utilisez cet ID pour identifier le groupe de pilotes dans les futures opérations, telles que le redimensionnement du groupe de nœuds. Si elle n'est pas spécifiée, Dataproc génère l'ID de groupe de nœuds.

Option recommandée:

  • --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'UI YARN affichent l'état du cluster et des tâches, la mémoire de la file d'attente de l'application, la capacité du cœur 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'indicateur. Cet ID peut être utilisé pour identifier le groupe de nœuds lors de futures opérations de pool de nœuds, telles que le redimensionnement du groupe de nœuds.
--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, tandis que 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

Terminez un AuxiliaryNodeGroup dans le cadre d'une requête cluster.create de l'API Dataproc.

Avant d'utiliser les données de requête ci-dessous, 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 dans 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 futures opérations, telles que le redimensionnement du groupe de nœuds. Si elle n'est pas spécifiée, Dataproc génère l'ID de groupe de nœuds.

Options supplémentaires:consultez 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 du groupe de nœuds du 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 obligatoires:

  • NODE_GROUP_ID: vous pouvez exécuter gcloud dataproc clusters describe CLUSTER_NAME pour afficher 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 ci-dessous, 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 afficher 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 pilote

Vous pouvez utiliser la commande gcloud dataproc node-groups resize ou l'API Dataproc pour ajouter ou supprimer des nœuds de pilote d'un groupe de nœuds de pilote de cluster.

gcloud

gcloud dataproc node-groups resize NODE_GROUP_ID \
    --cluster=CLUSTER_NAME \
    --region=REGION \
    --size=SIZE

Indicateurs obligatoires:

  • NODE_GROUP_ID: vous pouvez exécuter gcloud dataproc clusters describe CLUSTER_NAME pour afficher l'ID du groupe de nœuds.
  • CLUSTER_NAME: nom du cluster.
  • REGION: région du cluster.
  • SIZE: spécifiez le nouveau nombre de nœuds de pilote dans le groupe de nœuds.

Indicateur facultatif:

  • --graceful-decommission-timeout=TIMEOUT_DURATION : lorsque vous réduisez la taille 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 une durée de délai avant expiration au moins égale à 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: Commande d'ajustement de la taille NodeGroup de la gcloud CLI:

gcloud dataproc node-groups resize NODE_GROUP_ID \
    --cluster=CLUSTER_NAME \
    --region=REGION \
    --size=4

Exemple: Commande de réduction de l'échelle NodeGroup de la gcloud CLI:

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 ci-dessous, 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 afficher l'ID du groupe de nœuds.
  • SIZE : valeur obligatoire. Nouveau nombre de nœuds dans le groupe de nœuds.
  • TIMEOUT_DURATION : facultatif. Lorsque vous réduisez la taille 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 une durée de délai avant expiration au moins égale à 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 :

    { "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 également supprimés.

Envoyer une tâche

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 obligatoires:

  • JOB_COMMAND: spécifiez la commande de travail.
  • CLUSTER_NAME: nom du cluster.
  • DRIVER_MEMORY: quantité de mémoire des pilotes de tâche en Mo nécessaire pour exécuter une tâche (voir la section Commandes de mémoire Yarn).
  • DRIVER_VCORES: nombre de processeurs virtuels nécessaires pour exécuter une tâche.

Options supplémentaires:

  • DATAPROC_FLAGS: ajoutez tous les autres indicateurs gcloud dataproc jobs submit liés au type de tâche.
  • JOB_ARGS: ajoutez des 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.

  • Tâche 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'
    
  • Tâche 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 TeraGen Hadoop:

    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 ci-dessous, 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 dans 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 tâches en Mo nécessaire pour exécuter une tâche (voir la section Commandes de mémoire Yarn).
  • DRIVER_VCORES : valeur obligatoire. Nombre de vCPU nécessaires pour exécuter une tâche.
Champs supplémentaires:ajoutez des champs supplémentaires liés au type de tâche et aux arguments de la tâche (l'exemple de requête inclut les champs nécessaires pour envoyer une tâche Spark qui estime la valeur de 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 des jobs et vous aider à déboguer les problèmes liés aux jobs, vous pouvez afficher les journaux des pilotes à l'aide de gcloud CLI ou de la console Google Cloud.

gcloud

Les journaux du pilote de tâche sont diffusés en continu vers la sortie de gcloud CLI ou la console Google Cloud pendant l'exécution de la tâche. Les journaux des pilotes persistent dans un bucket de préproduction de cluster Dataproc dans Cloud Storage.

Exécutez la commande gcloud CLI suivante pour afficher l'emplacement des journaux des pilotes dans Cloud Storage:

gcloud dataproc jobs describe JOB_ID \
    --region=REGION
   

L'emplacement Cloud Storage des journaux des pilotes est répertorié comme driverOutputResourceUri dans la 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 du cluster de groupe de nœuds:

  1. Activez la journalisation.

  2. Vous pouvez utiliser le format de requête Explorateur de journaux suivant pour rechercher des 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: Google Cloud ID du projet.
    • 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

Surveiller les métriques

Les pilotes de tâches du groupe de nœuds Dataproc s'exécutent dans une file d'attente enfant dataproc-driverpool-driver-queue sous une partition dataproc-driverpool.

Métriques du groupe de nœuds du pilote

Le tableau suivant liste les métriques du pilote de groupe de nœuds associées, qui sont collectées par défaut pour les groupes de nœuds de pilote.

Métrique du groupe de nœuds du pilote Description
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB Quantité de mémoire disponible en mébioctets dans dataproc-driverpool-driver-queue sous la partition dataproc-driverpool.
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers Nombre de conteneurs en attente (mis en file d'attente) dans dataproc-driverpool-driver-queue sous la partition dataproc-driverpool.

Métriques de la file d'attente enfant

Le tableau suivant liste 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 pilote 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 (mis 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'exécution dure 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'exécution dure 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'exécution dure 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 dure plus de 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:

Débogage du pilote de tâche de groupe de nœuds

Cette section fournit des conditions et des erreurs de groupe de nœuds de pilote, avec des recommandations pour résoudre la condition ou l'erreur.

Conditions

  • Condition:yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB se rapproche de 0. 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 conducteurs.

  • 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 en file d'attente des tâches.

    Recommandation : Augmentez la taille du pool de conducteurs.

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 et driver-required-vcores avec des nombres positifs.

  • Erreur:Container exited with a non-zero exit code 137.

    Recommandation:Augmentez driver-required-memory-mb pour augmenter l'utilisation de la mémoire par le job.