Como solucionar o erro “Falha no comando com o código de saída” no AWS Glue?

Data da última atualização: 24/08/2021

Meu trabalho de extrair, transformar e carregar (ETL) do AWS Glue falha com o erro “Falha no comando com o código de saída”.

Descrição breve

Você recebe o erro quando uma ou mais das seguintes condições forem verdadeiras:

  • O driver ou executor do trabalho ficou sem memória.
  • Seu script ETL tem problemas relacionados ao código.
  • A função do IAM do AWS Glue não possui as permissões necessárias para acessar o caminho do script.

Quando a execução do trabalho falha devido a um dos motivos anteriores, os respectivos logs de erros são gravados no Amazon CloudWatch.

Resolução

Use as etapas de solução de problemas apropriadas com base no seu caso de uso.

O trabalho falha com o erro “Falha no comando com o código de saída 1” e os logs do CloudWatch mostram o erro “java.lang.OutOfMemoryError: Java heap space”

O erro “java.lang.OutOfMemoryError: Java heap space” indica que um processo de driver em seu trabalho está ficando sem memória. Para descobrir se a exceção de falta de memória (OOM) é causada por um driver ou um executor, consulte Depuração de exceções de OOM e anormalidades de trabalho. Para depurar a exceção OOM causada pelo driver, consulte Como resolvo o erro “java.lang.OutOfMemoryError: Java heap space” no AWS Glue? Para obter mais informações, consulte Depuração de uma exceção de OOM de driver.

O trabalho do AWS Glue falha com o erro “Falha no comando com o código de saída 1” e os logs do CloudWatch mostram o erro “Contêiner eliminado pelo YARN por exceder os limites de memória”

Esse erro indica que o executor causa a exceção OOM. Para depurar a exceção OOM causada pelo executor, consulte Depuração de uma exceção OOM do executor.

O trabalho do AWS Glue falha com o erro “Falha no comando com o código de saída 10”

Confira os logs do CloudWatch para o trabalho para encontrar erros relacionados aos executores. O erro geralmente ocorre durante o estágio de embaralhamento do Spark. Por exemplo, o erro ocorre quando a ação de repartição é chamada e o executor aleatório fica sem memória. Monitore o executor em busca de tarefas mais complexas durante as operações de embaralhamento de dados. Para obter mais informações, consulte Depuração de estágios exigentes e tarefas mais complexas.

O trabalho do AWS Glue falha com o erro “Falha no comando com o código de saída 1” e não inicia

Confira os logs de trabalho do CloudWatch quanto a erros relacionados ao Amazon Simple Storage Service (Amazon S3). Os logs de erros podem ser semelhantes aos seguintes:

com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied' Request ID: xxxxxxxxxxxxx)

O erro ocorre quando a função do IAM do AWS Glue não tem a permissão necessária para acessar o script ETL do AWS Glue a partir do caminho do Amazon S3. Analise as permissões exigidas por uma função do IAM do AWS Glue para acessar o caminho de localização do script. Verifique e confirme se essas permissões necessárias estão anexadas à função.

O trabalho do AWS Glue falha com o erro “Falha no comando com o código de saída 1” e os logs do CloudWatch mostram o erro “Exception in thread ‘main’ java.lang.NoSuchMethodError” ou “Exception in thread ‘main’ java.lang.ExceptionInInitializerError”

As exceções indicam um conflito de dependência JAR ou conflito de versão do Spark. Confira o executável JAR e/ou os arquivos JAR extras passados no trabalho quanto a conflitos.

O trabalho do AWS Glue falha com “Falha no comando com o código de saída 1” e os logs do CloudWatch mostram o erro “RuntimeError”

O erro “RuntimeError” indica que o Spark SQL passado no script ETL tem uma exceção semântica.

Por exemplo:

RuntimeError: FAILED: SemanticException [Error 10006]: Partition not found

Para solucionar o erro, revise os logs de trabalho do AWS Glue em busca de erros de sintaxe do SQL.

Observação: o erro pode ocorrer devido a diferentes motivos, como problemas de rede. Portanto, as etapas de resolução não se limitam às fornecidas no artigo.