Por que meu trabalho do AWS Glue está falhando com o erro "Status de saída: -100. Diagnóstico: Contêiner liberado em um nó *perdido*"?

4 minuto de leitura
0

Meu trabalho do AWS Glue 1.0 ou 0.9 falhou com o seguinte erro: "Status de saída: -100. Diagnóstico: Contêiner liberado em um nó perdido."

Resolução

Se sua fonte de dados for o JDBC, consulte Por que meu trabalho do AWS Glue falha com nós perdidos quando eu migro um conjunto de dados grande do Amazon RDS para o Amazon S3?Se sua fonte de dados for o Amazon Simple Storage Service (Amazon S3), use um ou mais dos seguintes métodos para resolver erros de nós perdidos.

Observação: Se receber erros ao executar comandos da AWS CLI, certifique-se de estar utilizando a versão mais recente da AWS CLI.

Adicione mais unidades de processamento de dados (DPUs)

Por padrão, os trabalhos do AWS Glue têm 10 DPUs e usam o tipo de trabalhador Padrão. Uma DPU é reservada para o aplicativo principal. Antes de adicionar mais DPUs, considere o seguinte:

  • Adicionar mais DPUs só ajuda se a carga de trabalho da tarefa estiver paralelizada. Se você não estiver particionando os dados adequadamente, eles não serão distribuídos para os novos nós e você receberá erros de nós perdidos. Para obter mais informações, consulte Determinar a capacidade ideal da DPU.
  • Em alguns casos, arquivos grandes podem consumir muitos recursos em um nó, o que reduz a eficácia da paralelização da carga de trabalho da tarefa. Para atenuar esse problema, certifique-se de que os arquivos grandes estejam em um formato divisível. Para obter mais informações, consulte Práticas recomendadas para ajustar escala de trabalhos do Apache Spark e particionar dados com o AWS Glue.
  • Quanto maior o tempo de execução de um trabalho, mais logs ele gravará no disco. Se os logs estiverem causando o problema de espaço em disco, adicionar mais DPUs não ajudará. Em alguns casos, os erros de nós perdidos são causados pelo excesso de registros em log e operações escritas no disco.
  • Verifique os logs e a métrica glue.ALL.jvm.heap.usage do Amazon CloudWatch para identificar executores consumidores de memória. Se alguns executores estiverem consumindo mais memória que outros, a distorção dos dados pode estar causando o erro.

Use a API de trabalhos, a AWS Command Line Interface (AWS CLI) ou o console do AWS Glue para adicionar mais DPUs ao criar um trabalho:

  • API de trabalhos: Defina a propriedade NumberOfWorkers ao executar a operação CreateJob.
  • AWS CLI: Defina a propriedade number-of-workers ao executar o comando create-job.
  • Console do AWS Glue: Na página Configurar as propriedades do trabalho, em Configuração de segurança, bibliotecas de scripts e parâmetros do trabalho (opcional), aumente o valor de Capacidade máxima. Esse é o número de DPUs do trabalho.

Certifique-se de que as métricas do CloudWatch estejam habilitadas para o trabalho. Essas métricas podem ajudar você a monitorar o desempenho do trabalho e determinar se você deve adicionar mais DPUs. Use a API de trabalhos, a AWS CLI ou o console do AWS Glue para habilitar métricas para um trabalho novo ou existente:

  • API de trabalhos: Use o argumento --enable-metrics ao definir DefaultArguments nas operações CreateJob ou UpdateJob.
  • AWS CLI: Use o argumento --enable-metrics.
  • Console do AWS Glue: Em Opções de monitoramento, defina as Métricas do trabalho como Ativadas.

Alterar o tipo de trabalhador da DPU

Dependendo do tamanho do seu conjunto de dados, o tipo de trabalhador Padrão pode não ter recursos suficientes para evitar que o aplicativo Spark fique sem memória e seja operado no disco. Para resolver esse problema, escolha um tipo de trabalhador com mais recursos disponíveis:

  • **Padrão (padrão):**Cada trabalhador mapeia para 1 DPU (4 vCPUs, 16 GB de memória) e tem 50 GB de espaço em disco.
  • **G.1X:**Cada trabalhador mapeia para 1 DPU (4 vCPUs, 16 GB de memória) e tem 64 GB de espaço em disco.
  • **G.2X:**Cada trabalhador mapeia para 2 DPUs (8 vCPUs, 32 GB de memória) e tem 128 GB de espaço em disco.

Use a API de trabalhos, a AWS CLI ou o console do AWS Glue para alterar o tipo de trabalhador ao criar um trabalho:

  • API de trabalhos: Defina a propriedade WorkerType ao executar a operação CreateJob.
  • AWS CLI: Defina a propriedade worker-type ao executar o comando create-job.
  • Console do AWS Glue: Na página Configurar as propriedades do trabalho, em Configuração de segurança, bibliotecas de scripts e parâmetros do trabalho (opcional), escolha uma opção diferente para Tipo de trabalhador.

Informações relacionadas

Como adicionar trabalhos no AWS Glue

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos