Como resolvo o erro do AWS Glue “The specified subnet does not have enough free addresses to satisfy the request”?

5 minuto de leitura
0

Eu executei um trabalho de extração, transformação e carregamento (ETL, Extract, Transform and Load) do AWS Glue. No entanto, ele falhou e recebi uma mensagem de erro informando que não há endereços IP livres o suficiente na sub-rede.

Breve descrição

Ao executar um trabalho ETL do AWS Glue, você pode se deparar com um dos seguintes erros:

  • “The specified subnet does not have enough free addresses to satisfy the request. (Service: AmazonEC2; Status Code: 400; Error Code: InsufficientFreeAddressesInSubnet; Request ID: my_request_id)”
  • “An error occurred calling o70.getDynamicFrame. Job 0 cancelled because SparkContext was shut down caused by threshold for executors failed after launch reached”

O erro anterior pode ocorrer pelos seguintes motivos:

  • O trabalho do AWS Glue usa mais unidades de processamento de dados (DPUs, Data Processing Units) do que endereços IP disponíveis.
  • Outros serviços da AWS estão usando endereços IP na mesma sub-rede.
  • Você não desanexou as interfaces de rede elástica após a conclusão do trabalho.

Resolução

Confirme quantas DPUS o trabalho usa e reduza o número de DPUs

Certifique-se de que o trabalho esteja concluído. Em seguida, confirme quantas DPUs o trabalho usou e determine o número de DPUs que é possível remover.

Para verificar quantas DPUs o trabalho usou, conclua as seguintes etapas:

  1. Abra o console do AWS Glue.
  2. No painel de navegação, escolha Trabalhos.
  3. Selecione o trabalho e, em seguida, escolha a guia Histórico.
  4. Verifique o número de DPUs na coluna Capacidade máxima.

Em seguida, determine o número de DPUs a serem removidos do trabalho.

O número de DPUs não é igual ao número de interfaces de rede.

Cada operador exige uma interface de rede, com exceção dos seguintes tipos de operador, cada um deles exige uma interface de rede adicional:

  • Tipo de operador padrão (1 DPU por operador)
  • Tipo de operador G1.X (1 DPU por operador)
  • Tipo de opeador G2.X (2 DPUs)

Por exemplo, se você executar um trabalho com 20 operadores em um G.2x, use o cálculo a seguir para calcular o número de endereços IP:

AWS Glue 2.0/3.0/4.0: 40 DPU = 19 operadores (executores) + 1 driver = 20 endereços IP (nenhum executor de tarefas no AWS Glue 2.0/3.0/4.0)

Para reduzir o número de DPUs, conclua as seguintes etapas:

  1. Abra o console do AWS Glue.
  2. No painel de navegação, escolha Trabalhos e selecione o trabalho.
  3. Escolha a lista suspensa Ação e, em seguida, escolha Editar trabalho.
  4. Expanda a lista Configuração de segurança, bibliotecas de script e parâmetros de trabalho (opcional).
  5. No campo Capacidade máxima, insira um número menor para o número máximo de DPUs que o trabalho pode usar.
  6. Salve suas alterações e, em seguida, execute o trabalho novamente.

Verifique o número de endereços IP disponíveis e exclua as interfaces de rede não utilizadas

Primeiro, verifique o número de endereços IP disponíveis na sub-rede.

Conclua as etapas a seguir:

  1. Abra o console do AWS Glue.
  2. No painel de navegação, escolha Conexões.
  3. Selecione a conexão que seu trabalho usa.
  4. Escolha a lista suspensa Ação e, em seguida, escolha Visualizar detalhes.
  5. Anote a sub-rede.
  6. Abra o console da Amazon VPC.
  7. No painel de navegação, selecione Sub-redes.
  8. Na lista suspensa Sub-rede, escolha a sub-rede que a conexão do AWS Glue usa.
  9. Na guia Descrição, marque o campo Endereços IPv4 disponíveis para ver quantos endereços IP estão disponíveis na sub-rede.
  10. Verifique se a sub-rede tem mais endereços IP disponíveis do que o trabalho do AWS Glue exige.

Se a sub-rede não tiver endereços IP disponíveis o suficiente, exclua todas as interfaces de rede não utilizadas.

Crie e use uma sub-rede com mais endereços IP disponíveis

Se a sub-rede existente não tiver endereços IP suficientes, crie uma nova sub-rede no seu Amazon VPC. É possível usar o bloco CIDR original ou adicionar um novo para expandir o intervalo. Em seguida, verifique se a nova sub-rede usa as mesmas regras da tabela de rotas e lista de controle de acesso à rede (ACL de rede) da sub-rede original. Por exemplo, se sua sub-rede anterior tinha uma rota padrão para um gateway da Internet, a nova sub-rede deve rotear para um gateway da internet.

Atualize a conexão do AWS Glue para usar a nova sub-rede

Conclua as etapas a seguir:

  1. Abra o console do AWS Glue.
  2. No painel de navegação, escolha Conexões.
  3. Selecione a conexão que seu trabalho do AWS Glue usa.
  4. Na lista suspensa Ação, escolha Editar conexão.
  5. Na página Configurar as propriedades da sua conexão, escolha Próximo.
  6. Na página Configurar acesso ao seu armazenamento de dados, na lista suspensa Sub-rede, selecione a nova sub-rede.
  7. Escolha Próximo e, em seguida, escolha Concluir.
  8. Execute o trabalho novamente.

Informações relacionadas

Definindo propriedades de trabalho para tarefas do Spark

Configurar o Amazon VPC para conexões do JDBC aos armazenamentos de dados do Amazon RDS a partir do AWS Glue

AWS OFICIAL
AWS OFICIALAtualizada há 2 meses