Grupos de nós do driver do Dataproc

Visão geral

Um recurso NodeGroup do Dataproc é um grupo de nós de cluster do Dataproc que executam uma função atribuída. Esta página descreve o grupo de nós do driver, que é um grupo de VMs do Compute Engine a que é atribuído o papel Driver para executar drivers de job no cluster do Dataproc.

Quando usar grupos de nós de driver

  • Use grupos de nós de driver somente quando precisar executar muitos trabalhos simultâneos em um cluster compartilhado.
  • Aumente os recursos do nó mestre antes de usar grupos de nós de driver para evitar limitações do grupo de nós de driver.

Como os nós de driver ajudam a executar jobs concorrentes

O Dataproc inicia um processo de driver de job em um nó mestre do cluster do Dataproc para cada job. O processo do driver, por sua vez, executa um driver de aplicativo, como spark-submit, como processo filho. No entanto, o número de jobs simultâneos em execução no mestre é limitado pelos recursos disponíveis no nó mestre. Como os nós mestre do Dataproc não podem ser dimensionados, um job pode falhar ou ser limitado quando os recursos do nó mestre são insuficientes para executar um job.

Os grupos de nós do driver são grupos de nós especiais gerenciados pelo YARN, portanto, a simultaneidade de jobs não é limitada pelos recursos do nó mestre. Em clusters com um grupo de nós de driver, os drivers de aplicativos são executados em nós de driver. Cada nó de driver pode executar vários drivers de aplicativo se tiver recursos suficientes.

Vantagens

Com um cluster do Dataproc e um grupo de nós de driver, você pode:

  • Escalonar horizontalmente os recursos do job driver para executar mais jobs simultâneos
  • Dimensionar os recursos do driver separadamente dos recursos do worker
  • Obtenha redução de escala mais rápida em clusters de imagem do Dataproc 2.0 e mais recentes. Nesses clusters, o app master é executado em um driver do Spark em um grupo de nós de driver (o spark.yarn.unmanagedAM.enabled é definido como true por padrão).
  • Personalize a inicialização do nó do driver. É possível adicionar {ROLE} == 'Driver' em um script de inicialização para que ele realize ações para um grupo de nós do driver na seleção de nós.

Limitações

  • Os grupos de nós não são compatíveis com os modelos de fluxo de trabalho do Dataproc.
  • Não é possível interromper, reiniciar ou escalonar automaticamente os clusters de grupos de nós.
  • O mestre do app MapReduce é executado em nós de worker. A reduzir escala vertical de nós de trabalho pode ser lenta se você ativar a desativação suave.
  • A simultaneidade de jobs é afetada pela propriedade de cluster dataproc:agent.process.threads.job.max. Por exemplo, com três masters e essa propriedade definida como o valor padrão de 100, a simultaneidade máxima de jobs no nível do cluster é 300.

Grupo de nós do driver em comparação com o modo de cluster do Spark

Recurso Modo de cluster do Spark Grupo de nós do driver
Reduzir escala vertical do nó de trabalho Os drivers de longa duração são executados nos mesmos nós de worker que os contêineres de curta duração, o que torna reduzir escala vertical de workers usando desativação suave lenta. Os nós de trabalho reduzir escala vertical mais rapidamente quando os drivers são executados em grupos de nós.
Saída do driver em streaming Requer a pesquisa em registros do YARN para encontrar o nó em que o driver foi programado. A saída do driver é transmitida para o Cloud Storage e pode ser visualizada no console do Google Cloud e na saída do comando gcloud dataproc jobs wait após a conclusão de um job.

Permissões do IAM para o grupo de nós do driver

As permissões do IAM a seguir estão associadas às seguintes ações relacionadas ao grupo de nós do Dataproc.

Permissão Ação
dataproc.nodeGroups.create Crie grupos de nós do Dataproc. Se um usuário tiver dataproc.clusters.create no projeto, essa permissão será concedida.
dataproc.nodeGroups.get Confira os detalhes de um grupo de nós do Dataproc.
dataproc.nodeGroups.update Redimensione um grupo de nós do Dataproc.

Operações de grupos de nós de driver

É possível usar a CLI gcloud e a API Dataproc para criar, receber, redimensionar, excluir e enviar um job para um grupo de nós do driver do Dataproc.

Criar um cluster de grupo de nós de driver

Um grupo de nó de driver é associado a um cluster do Dataproc. Você cria um grupo de nós como parte da criação de um cluster do Dataproc. É possível usar a CLI gcloud ou a API REST do Dataproc para criar um cluster do Dataproc com um grupo de nós de driver.

gcloud

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

Sinalizadores obrigatórios:

  • CLUSTER_NAME: o nome do cluster, que precisa ser exclusivo em um projeto. O nome precisa começar com uma letra minúscula e pode conter até 51 letras minúsculas, números e hifens. Ele não pode terminar com um hífen. O nome de um cluster excluído pode ser reutilizado.
  • REGION: a região em que o cluster vai ficar.
  • SIZE: o número de nós de driver no grupo de nós. O número de nós necessários depende da carga de trabalho e do tipo de máquina do pool de drivers. O número de nós mínimos de grupo de drivers é igual à memória total ou às vCPUs necessárias pelos drivers de job dividido pela memória da máquina ou pelas vCPUs de cada pool de drivers.
  • NODE_GROUP_ID: opcional e recomendado. O ID precisa ser exclusivo no cluster. Use esse ID para identificar o grupo de drivers em operações futuras, como redimensionar o grupo de nós. Se não for especificado, o Dataproc vai gerar o ID do grupo de nós.

Flag recomendada:

  • --enable-component-gateway: adicione essa flag para ativar o gateway de componentes do Dataproc, que fornece acesso à interface da Web do YARN. As páginas de aplicativo e agendador da interface do YARN mostram o status do cluster e do job, a memória da fila de aplicativos, a capacidade do núcleo e outras métricas.

Outras flags:as flags driver-pool opcionais a seguir podem ser adicionadas ao comando gcloud dataproc clusters create para personalizar o grupo de nós.

Sinalização Valor padrão
--driver-pool-id Um identificador de string, gerado pelo serviço se não for definido pela sinalização. Esse ID pode ser usado para identificar o grupo de nós ao realizar operações futuras, como redimensionar o grupo de nós.
--driver-pool-machine-type n1-standard-4
--driver-pool-accelerator Sem padrão. Ao especificar um acelerador, o tipo de GPU é obrigatório, mas o número de GPUs é opcional.
--num-driver-pool-local-ssds Sem padrão
--driver-pool-local-ssd-interface Sem padrão
--driver-pool-boot-disk-type pd-standard
--driver-pool-boot-disk-size 1000 GB
--driver-pool-min-cpu-platform AUTOMATIC

REST

Conclua um AuxiliaryNodeGroup como parte de uma solicitação cluster.create da API Dataproc.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: obrigatório. ID do projeto do Google Cloud.
  • REGION: obrigatório. Região do cluster do Dataproc.
  • CLUSTER_NAME: obrigatório. O nome do cluster, que precisa ser exclusivo em um projeto. O nome precisa começar com uma letra minúscula e pode conter até 51 letras minúsculas, números e hifens. Ele não pode terminar com um hífen. O nome de um cluster excluído pode ser reutilizado.
  • SIZE: obrigatório. Número de nós no grupo de nós.
  • NODE_GROUP_ID: Opcional e recomendado. O ID precisa ser exclusivo no cluster. Use esse ID para identificar o grupo de drivers em operações futuras, como redimensionar o grupo de nós. Se não for especificado, o Dataproc vai gerar o ID do grupo de nós.

Opções adicionais:consulte NodeGroup.

Método HTTP e URL:

POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters

Corpo JSON da solicitação:

{
  "clusterName":"CLUSTER_NAME",
  "config": {
    "softwareConfig": {
      "imageVersion":""
    },
    "endpointConfig": {
      "enableHttpPortAccess": true
    },
    "auxiliaryNodeGroups": [{
        "nodeGroup":{
            "roles":["DRIVER"],
            "nodeGroupConfig": {
                "numInstances": SIZE
             }
         },
        "nodeGroupId": "NODE_GROUP_ID"
    }]
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
      }
    ]
  },
}

Receber metadados do cluster do grupo de nós do driver

É possível usar o comando gcloud dataproc node-groups describe ou a API Dataproc para extrair metadados do grupo de nós do driver.

gcloud

gcloud dataproc node-groups describe NODE_GROUP_ID \
    --cluster=CLUSTER_NAME \
    --region=REGION

Sinalizadores obrigatórios:

  • NODE_GROUP_ID: é possível executar gcloud dataproc clusters describe CLUSTER_NAME para listar o ID do grupo de nós.
  • CLUSTER_NAME: o nome do cluster.
  • REGION: a região do cluster.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: obrigatório. ID do projeto do Google Cloud.
  • REGION: obrigatório. A região do cluster.
  • CLUSTER_NAME: obrigatório. O nome do cluster.
  • NODE_GROUP_ID: obrigatório. É possível executar gcloud dataproc clusters describe CLUSTER_NAME para listar o ID do grupo de nós.

Método HTTP e URL:

GET https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAMEnodeGroups/Node_GROUP_ID

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
  }
}

Redimensionar um grupo de nós de driver

Use o comando gcloud dataproc node-groups resize ou a API Dataproc para adicionar ou remover nós de driver de um grupo de nós de cluster.

gcloud

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

Sinalizadores obrigatórios:

  • NODE_GROUP_ID: é possível executar gcloud dataproc clusters describe CLUSTER_NAME para listar o ID do grupo de nós.
  • CLUSTER_NAME: o nome do cluster.
  • REGION: a região do cluster.
  • SIZE: especifica o novo número de nós de driver no grupo de nós.

Flag opcional:

  • --graceful-decommission-timeout=TIMEOUT_DURATION: ao reduzir um grupo de nós, é possível adicionar essa flag para especificar uma desativação suave TIMEOUT_DURATION e evitar a interrupção imediata dos drivers de job. Recomendação:defina um tempo limite com duração igual ou superior à do job mais longo em execução no grupo de nós. Não é possível recuperar drivers com falha.

Exemplo: comando de escalonar verticalmente NodeGroup da CLI gcloud:

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

Exemplo: comando de reduzir escala vertical NodeGroup da CLI gcloud:

gcloud dataproc node-groups resize NODE_GROUP_ID \
    --cluster=CLUSTER_NAME \
    --region=REGION \
    --size=1 \
    --graceful-decommission-timeout="100s"

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: obrigatório. ID do projeto do Google Cloud.
  • REGION: obrigatório. A região do cluster.
  • NODE_GROUP_ID: obrigatório. Execute gcloud dataproc clusters describe CLUSTER_NAME para listar o ID do grupo de nós.
  • SIZE: obrigatório. Novo número de nós no grupo de nós.
  • TIMEOUT_DURATION: opcional. Ao reduzir o grupo de nós, você pode adicionar um gracefulDecommissionTimeout ao corpo da solicitação para evitar a interrupção imediata dos drivers de job. Recomendação:defina um tempo limite pelo menos igual à duração do job mais longo em execução no grupo de nós. Não há suporte para a recuperação de drivers com falha.

    Exemplo:

    { "size": SIZE,
      "gracefulDecommissionTimeout": "TIMEOUT_DURATION"
    }
       

Método HTTP e URL:

POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAME/nodeGroups/Node_GROUP_ID:resize

Corpo JSON da solicitação:

{
  "size": SIZE,
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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."
  }
}

Excluir um cluster de grupo de nós do driver

Quando você exclui um cluster do Dataproc, os grupos de nós associados a ele também são excluídos.

Envie um job

Use o comando gcloud dataproc jobs submit ou a API Dataproc para enviar um job a um cluster com um grupo de nós de driver.

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

Sinalizadores obrigatórios:

  • JOB_COMMAND: especifica o comando de job.
  • CLUSTER_NAME: o nome do cluster.
  • DRIVER_MEMORY: quantidade de memória de drivers de job em MB necessária para executar um job (consulte Controles de memória do Yarn).
  • DRIVER_VCORES: o número de vCPUs necessárias para executar um job.

Outras flags:

  • DATAPROC_FLAGS: adicione outras flags gcloud dataproc jobs submit relacionadas ao tipo de job.
  • JOB_ARGS: adicione argumentos (após o -- para transmitir ao job.

Exemplos:é possível executar os exemplos a seguir em uma sessão de terminal SSH em um cluster de grupo de nós do driver do Dataproc.

  • Job do Spark para estimar o valor 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 contagem de palavras do 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 do PySpark para estimar o valor 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
    
  • Job do MapReduce TeraGen do 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

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: obrigatório. ID do projeto do Google Cloud.
  • REGION: obrigatório. Região do cluster do Dataproc
  • CLUSTER_NAME: obrigatório. O nome do cluster, que precisa ser exclusivo em um projeto. O nome precisa começar com uma letra minúscula e pode conter até 51 letras minúsculas, números e hifens. Ele não pode terminar com um hífen. O nome de um cluster excluído pode ser reutilizado.
  • DRIVER_MEMORY: obrigatório. Quantidade de memória de drivers de job em MB necessária para executar um job (consulte Controles de memória do Yarn).
  • DRIVER_VCORES: obrigatório. O número de vCPUs necessárias para executar um job.
Outros campos:adicione outros campos relacionados ao tipo de job e aos argumentos do job. A solicitação de exemplo inclui campos necessários para enviar um job do Spark que estima o valor de pi.

Método HTTP e URL:

POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/jobs:submit

Corpo JSON da solicitação:

{
  "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"
    }
  }
}


Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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"
}

Ver registros do job

Para conferir o status do job e ajudar a depurar problemas, acesse os registros do driver usando a CLI gcloud ou o console do Google Cloud.

gcloud

Os registros do job driver são transmitidos para a saída da CLI gcloud ou o console do Google Cloud durante a execução do job. Os registros do driver são mantidos em um bucket de preparo do cluster do Dataproc no Cloud Storage.

Execute o comando da CLI gcloud abaixo para listar o local dos registros do driver no Cloud Storage:

gcloud dataproc jobs describe JOB_ID \
    --region=REGION
   

O local do Cloud Storage dos registros de driver é listado como driverOutputResourceUri na resposta ao comando no seguinte formato:

driverOutputResourceUri: gs://CLUSTER_STAGING_BUCKET/google-cloud-dataproc-metainfo/CLUSTER_UUID/jobs/JOB_ID

Console

Para conferir os registros do cluster do grupo de nós:

  1. Ative a geração de registros.

  2. Use o seguinte formato de consulta do Explorador de registros para encontrar registros:

    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>"
    
    Substitua:

    • PROJECT_ID: ID do projeto do Google Cloud
    • CLUSTER_NAME: o nome do cluster.
    • LOG_TYPE:
      • Registros de usuário do Yarn: yarn-userlogs
      • Registros do Yarn Resource Manager: hadoop-yarn-resourcemanager
      • Registros do gerenciador de nós do YARN: hadoop-yarn-nodemanager

Monitorar as métricas

Os drivers de job do grupo de nós do Dataproc são executados em uma fila filha dataproc-driverpool-driver-queue em uma partição dataproc-driverpool.

Métricas do grupo de nós do impulsionador

A tabela a seguir lista as métricas do driver do grupo de nós associado, que são coletadas por padrão para grupos de nós de driver.

Métrica do grupo de nós do impulsionador Descrição
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB A quantidade de memória disponível em mebibytes em dataproc-driverpool-driver-queue na partição dataproc-driverpool.
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers O número de contêineres pendentes (na fila) em dataproc-driverpool-driver-queue na partição dataproc-driverpool.

Métricas de fila filha

A tabela a seguir lista as métricas de filas filhas. As métricas são coletadas por padrão para grupos de nós de driver e podem ser ativadas para coleta em qualquer cluster do Dataproc.

Métrica de fila filha Descrição
yarn:ResourceManager:ChildQueueMetrics:AvailableMB A quantidade de memória disponível em mebibytes nessa fila na partição padrão.
yarn:ResourceManager:ChildQueueMetrics:PendingContainers Número de contêineres pendentes (na fila) nessa fila na partição padrão.
yarn:ResourceManager:ChildQueueMetrics:running_0 O número de jobs com um tempo de execução entre 0 e 60 minutos nesta fila em todas as partições.
yarn:ResourceManager:ChildQueueMetrics:running_60 O número de jobs com um tempo de execução entre 60 e 300 minutos nesta fila em todas as partições.
yarn:ResourceManager:ChildQueueMetrics:running_300 O número de jobs com um tempo de execução entre 300 e 1440 minutos nesta fila em todas as partições.
yarn:ResourceManager:ChildQueueMetrics:running_1440 O número de jobs com um tempo de execução maior que 1440 minutos nesta fila em todas as partições.
yarn:ResourceManager:ChildQueueMetrics:AppsSubmitted Número de aplicativos enviados para a fila em todas as partições.

Para conferir YARN ChildQueueMetrics e DriverPoolsQueueMetrics no console do Google Cloud:

Depuração do driver de job do grupo de nós

Esta seção fornece condições e erros do grupo de nós do driver com recomendações para corrigir a condição ou o erro.

Condições

  • Condição:yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB está se aproximando de 0. Isso indica que a fila de pools de drivers de cluster está com pouca memória.

    Recomendação: aumente o tamanho do pool de motoristas.

  • Condição:yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers é maior que 0. Isso pode indicar que a fila de pools de drivers do cluster está sem memória e que o YARN está enfileirando jobs.

    Recomendação: aumente o tamanho do pool de motoristas.

Erros

  • Erro: 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.

    Recomendação:defina driver-required-memory-mb e driver-required-vcores com números positivos.

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

    Recomendação:aumente o uso de memória do job para driver-required-memory-mb.