Simultaneidade e enfileiramento de trabalhos para um aplicação do EMR Sem Servidor - Amazon EMR

Simultaneidade e enfileiramento de trabalhos para um aplicação do EMR Sem Servidor

A partir da versão 7.0.0 e posterior do Amazon EMR, é possível especificar o tempo limite da fila de execução de trabalhos e a configuração de simultaneidade da aplicação. Quando você especifica essa configuração, o Amazon EMR Sem Servidor começa colocando seu trabalho em fila e inicia a execução com base na utilização simultânea na aplicação. Por exemplo, se a simultaneidade de execução do seu trabalho for 10, somente dez trabalhos serão executados por vez na aplicação. Os trabalhos restantes ficam na fila até que um dos trabalhos em execução seja encerrado. Se o tempo limite da fila for atingido mais cedo, seu trabalho expirará. Para obter mais informações, consulte Job run states.

Principais benefícios da simultaneidade e do enfileiramento

A simultaneidade e o enfileiramento de trabalhos oferecem os seguintes benefícios quando muitos envios de trabalhos são necessários:

  • Isso ajuda a controlar trabalhos de execução simultâneos para usar com eficiência os limites de capacidade no nível da aplicação.

  • A fila pode conter uma expansão repentina de envios de trabalhos, com uma definição de tempo limite configurável.

Conceitos básicos de simultaneidade e enfileiramento

Os procedimentos a seguir mostram algumas maneiras diferentes de implementar a simultaneidade e o enfileiramento.

Usar o AWS CLI

  1. Crie uma aplicação do Amazon EMR Sem Servidor com tempo limite de fila e execuções de trabalhos simultâneos:

    aws emr-serverless create-application \ --release-label emr-7.0.0 \ --type SPARK \ --scheduler-configuration '{"maxConcurrentRuns": 1, "queueTimeoutMinutes": 30}'
  2. Atualize uma aplicação para alterar o tempo limite da fila e a simultaneidade de trabalhos:

    aws emr-serverless update-application \ --application-id application-id \ --scheduler-configuration '{"maxConcurrentRuns": 5, "queueTimeoutMinutes": 30}'
    nota

    Você pode atualizar a aplicação existente para habilitar a simultaneidade e o enfileiramento de trabalhos. Para fazer isso, a aplicação deve ter um rótulo de lançamento emr-7.0.0 ou posterior.

Usar o AWS Management Console

As seguintes etapas mostram como começar a usar a simultaneidade e o enfileiramento de trabalhos usando o AWS Management Console:

  1. Acesse EMR Studio e escolha criar uma aplicação com o rótulo de lançamento EMR-7.0.0 ou superior.

  2. Em Opções de configuração da aplicação, selecione a opção Usar configurações personalizadas.

  3. Em Configurações adicionais, há uma seção para Configurações de execução do trabalho. Selecione a opção Habilitar simultaneidade de trabalhos para habilitar o recurso.

  4. Depois de selecionado, você pode escolher Execuções de trabalhos simultâneos e Tempo limite da fila para configurar o número de execuções de trabalhos simultâneos e o tempo limite da fila, respectivamente. Se você não inserir valores para essas configurações, os valores padrão serão usados.

  5. Escolha Criar aplicações e a aplicação será criados com esse recurso habilitado. Para verificar, acesse o painel, selecione sua aplicação e confira na guia de propriedades para determinar se o recurso está habilitado.

Após a configuração, você pode enviar trabalhos com esse recurso habilitado.

Considerações sobre simultaneidade e enfileiramento

Leve as seguintes informações em consideração ao implementar a simultaneidade e o enfileiramento:

  • A fila de trabalhos e a simultaneidade são compatíveis com o Amazon EMR 7.0.0 e posterior.

  • Você pode atualizar a simultaneidade de uma aplicação no estado STARTED.

  • O intervalo válido para maxConcurrentRuns é de 1 a 1000 e, para queueTimeoutMinutes, ele é de 15 a 720.

  • Um máximo de 2.000 trabalhos podem estar no estado QUEUED em uma conta.

  • A simultaneidade e o enfileiramento se aplicam a trabalhos em lote e de streaming. Ele não pode ser usado para trabalhos interativos. Para obter mais informações, consulte Run interactive workloads with EMR Serverless through EMR Studio.