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 comotrue
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 de100
, 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.
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:
Use o seguinte formato de consulta do Explorador de registros para encontrar registros:
Substitua: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>"
- 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
- Registros de usuário do Yarn:
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:
- Selecione os recursos Instância de VM → Personalizado no Metrics Explorer.
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 de0
. 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
edriver-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
.