Usar Auto Scaling para o AWS Glue - AWS União

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar Auto Scaling para o AWS Glue

Agora o Auto Scaling está disponível para seus trabalhos de ETL e transmissão do AWS Glue com o AWS Glue versão 3.0 ou posterior.

Com o Auto Scaling habilitado, você obtém os seguintes benefícios:

  • O AWS Glue adiciona e remove automaticamente operadores do cluster, dependendo do paralelismo em cada estágio ou microlote da execução do trabalho.

  • Ele elimina a necessidade de experimentar e decidir quantos operadores deverão ser designados para os trabalhos de ETL do AWS Glue.

  • Se você escolher o número máximo de operadores, o AWS Glue escolherá os recursos de tamanho certo para a workload.

  • Você pode ver como o tamanho do cluster se altera durante a execução do trabalho observando as métricas do CloudWatch na página de detalhes da execução de trabalho no AWS Glue Studio.

O Auto Scaling para trabalhos de ETL e streaming do AWS Glue permite aumentar e reduzir verticalmente a escala dos recursos de computação dos trabalhos do AWS Glue sob demanda. Aumentar a escala verticalmente sob demanda ajuda você a alocar apenas os recursos de computação necessários ao iniciar a execução do trabalho e também a provisionar os recursos necessários de acordo com a demanda durante o trabalho.

O Auto Scaling também é compatível com a redução dinâmica da escala vertical dos recursos do trabalho do AWS Glue durante sua execução. Em uma execução de trabalho, quando mais executores forem solicitados pela aplicação Spark, mais operadores serão adicionados ao cluster. Quando o executor ficar ocioso sem tarefas de computação ativas, o executor e o operador correspondente serão removidos.

Cenários comuns em que o Auto Scaling ajuda com o custo e a utilização de suas aplicações do Spark incluem um driver do Spark listando um grande número de arquivos no Amazon S3 ou executando uma carga enquanto os executores estão inativos, estágios do Spark em execução com apenas alguns executores devido ao excesso de provisionamento e distorções de dados ou demanda de computação irregular nos estágios do Spark.

Requisitos

O Auto Scaling só está disponível para o AWS Glue versão 3.0 ou posterior. Para usar o Auto Scaling, você pode seguir o guia de migração para migrar os trabalhos existentes para o AWS Glue versão 3.0 ou criar novos trabalhos com o AWS Glue versão 3.0.

O ajuste de escala automático está disponível para trabalhos AWS Glue com os tipos de trabalho G.1X, G.2X, G.4X, G.8X ou G.025X (somente para trabalhos de streaming). Não há suporte para DPUs padrão.

Habilitar Auto Scaling no AWS Glue Studio

Na guia Job details (Detalhes do trabalho) no AWS Glue Studio, escolha o tipo Spark ou Spark Streaming (Streaming do Spark) e a Glue version (Versão do Glue) como Glue 3.0 ou Glue 4.0. Uma caixa de seleção será exibida abaixo de Worker type (Tipo de operador).

  • Selecione a opção Automatically scale the number of workers (Dimensionar automaticamente o número de operadores).

  • Defina Maximum numer of workers (Número máximo de operadores) para estabelecer o número máximo de operadores que podem ser transferidos para a execução do trabalho.

Habilitação e configuração do Auto Scaling no AWS Glue Studio.

Habilitar o Auto Scaling com a AWS CLI ou SDK

Para habilitar o Auto Scaling diretamente da AWS CLI para sua execução de trabalho, execute start-job-run com a seguinte configuração:

{ "JobName": "<your job name>", "Arguments": { "--enable-auto-scaling": "true" }, "WorkerType": "G.2X", // G.1X and G.2X are allowed for Auto Scaling Jobs "NumberOfWorkers": 20, // represents Maximum number of workers ...other job run configurations... }

Quando a execução do trabalho de ETL estiver concluída, também será possível chamar get-job-run para verificar o uso efetivo de recurso da execução de trabalho em segundos de DPU. Observação: o novo campo DPUSeconds só aparecerá para trabalhos em lote no AWS Glue 3.0 ou posterior habilitado com o Auto Scaling. Esse campo não é compatível com trabalhos de transmissão.

$ aws glue get-job-run --job-name your-job-name --run-id jr_xx --endpoint https://glue.us-east-1.amazonaws.com --region us-east-1 { "JobRun": { ... "GlueVersion": "3.0", "DPUSeconds": 386.0 } }

Você também pode configurar execuções de tarefas com o Auto Scaling usando o AWS Glue SDK com a mesma configuração.

Habilitar o Auto Scaling com sessões interativas

Para habilitar o Auto Scaling ao criar trabalhos do AWS Glue com sessões interativas, consulte Configuring AWS Glue interactive sessions.

Monitorar o Auto Scaling com métricas do Amazon CloudWatch

As métricas do executor do CloudWatch estarão disponíveis para os trabalhos do AWS Glue 3.0 se você habilitar o Auto Scaling. As métricas podem ser usadas para monitorar a demanda e o uso otimizado dos executores em suas aplicações do Spark habilitadas com o Auto Scaling. Para ter mais informações, consulte Monitorar o AWS Glue usando métricas do Amazon CloudWatch.

  • glue.driver.ExecutorAllocationManager.executors.numberAllExecutors

  • glue.driver.ExecutorAllocationManager.executors.numberMaxNeededExecutors

Monitoramento do Auto Scaling com métricas do Amazon CloudWatch

Para obter mais detalhes sobre essas métricas, consulte Monitorar planejamento de capacidade de DPU.

Monitoramento do Auto Scaling com o Spark UI

Com o Auto Scaling habilitado, você também pode monitorar os executores que estão sendo adicionados e removidos com o aumento e a redução dinâmicos da escala vertical de acordo com a demanda dos trabalhos do AWS Glue usando a interface de usuário do Spark no Glue. Para ter mais informações, consulte Habilitar a interface do usuário da Web do Apache Spark para trabalhos do AWS Glue.

Monitoramento do Auto Scaling com a Spark UI.

Monitoramento do uso de DPU da execução de trabalho do Auto Scaling

É possível usar a visualização de execução de trabalhos do AWS Glue Studio para verificar o uso de DPU dos trabalhos de ajuste de escala automático.

  1. Escolha Monitoramento no painel de navegação do AWS Glue Studio. A página de monitoramento será exibida.

  2. Localize o quadro Job runs (Execuções de trabalho).

  3. Acesse a execução de trabalho de seu interesse e localize a coluna DPU hours (Horas de DPU) para verificar o uso da execução de trabalho específica.

Limitações

O Auto Scaling de streaming do AWS Glue no momento não é compatível com a união de um DataFrame de streaming com um DataFrame estático criado fora do ForEachBatch. Um DataFrame estático criado dentro do ForEachBatch funcionará conforme esperado.