

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á.

# Capacidade pré-inicializada para trabalhar com uma aplicação no EMR Sem Servidor
<a name="pre-init-capacity"></a>

O EMR Sem Servidor fornece um recurso opcional que mantém o driver e os trabalhadores pré-inicializados e prontos para responder em segundos. Isso cria efetivamente um grupo de aquecimento de trabalhadores para uma aplicação. Esse recurso é chamado de *capacidade pré-inicializada*. Para configurar esse recurso, defina o parâmetro `initialCapacity` de uma aplicação para o número de trabalhadores que você deseja pré-inicializar. Com a capacidade de trabalhadores pré-inicializada, os trabalhos começam imediatamente. Isso é ideal quando você deseja implementar aplicações iterativas e trabalhos urgentes.

A capacidade pré-inicializada mantém um grupo de aquecimento de trabalhadores prontos para a inicialização de trabalhos e sessões em segundos. Você pagará por trabalhadores pré-inicializados provisionados mesmo quando a aplicação estiver ociosa. Portanto, sugerimos habilitá-los para casos de uso que se beneficiem do rápido tempo de inicialização e dimensioná-los para a utilização ideal dos recursos. As aplicações do EMR Sem Servidor são desligadas automaticamente quando ociosas. Sugerimos manter esse recurso ativado ao usar trabalhadores pré-inicializados para evitar cobranças inesperadas.

Quando você envia um trabalho, se houver trabalhadores da `initialCapacity` disponíveis, o trabalho usa esses recursos para iniciar sua execução. Se esses trabalhadores já estiverem sendo usados por outros trabalhos, ou se o trabalho precisar de mais recursos do que os disponíveis da `initialCapacity`, a aplicação solicitará e obterá trabalhadores adicionais, até os limites máximos de recursos definidos para a aplicação. Quando um trabalho termina a execução, ele libera os trabalhadores que usou e o número de recursos disponíveis para a aplicação retorna para `initialCapacity`. Uma aplicação mantém a `initialCapacity` dos recursos mesmo após o término da execução dos trabalhos. A aplicação libera recursos em excesso além da `initialCapacity` quando os trabalhos não precisam mais deles para serem executados.

A capacidade pré-inicializada está disponível e pronta para uso quando a aplicação é iniciada. A capacidade pré-inicializada fica inativa quando a aplicação é interrompida. Uma aplicação passa para o estado `STARTED` somente se a capacidade pré-inicializada solicitada tiver sido criada e estiver pronta para uso. Durante todo o tempo em que a aplicação está no estado `STARTED`, o EMR Sem Servidor mantém a capacidade pré-inicializada disponível para utilização ou em uso por trabalhos ou workloads interativas. O recurso restaura a capacidade de contêineres liberados ou com falha. Isso mantém o número de trabalhadores que o parâmetro `InitialCapacity` especifica. O estado de uma aplicação sem capacidade pré-inicializada pode mudar imediatamente de `CREATED` para `STARTED`.

 Você pode configurar a aplicação para liberar a capacidade pré-inicializada se ela não for usada por um determinado período, com um padrão de 15 minutos. Uma aplicação interrompida é iniciada automaticamente quando você envia um novo trabalho. Você pode definir essas configurações automáticas de início e parada ao criar a aplicação ou alterá-las quando a aplicação estiver em um estado `CREATED` ou `STOPPED`.

Você pode alterar as contagens da `InitialCapacity` e especificar configurações de computação, como CPU, memória e disco, para cada trabalhador. Como você não pode fazer modificações parciais, especifique todas as configurações de computação ao alterar os valores. Você só pode alterar as configurações quando a aplicação está no estado `CREATED` ou `STOPPED`.

**nota**  
Para otimizar o uso de recursos da aplicação, sugerimos alinhar os tamanhos dos contêineres com os tamanhos dos trabalhadores da capacidade pré-inicializada. Por exemplo, se você configurar o tamanho do executor do Spark para 2 CPUs e sua memória para 8 GB, mas o tamanho do operador de capacidade pré-inicializada for 4 CPUs com 16 GB de memória, os executores do Spark usarão apenas metade dos recursos dos trabalhadores quando forem designados para esse trabalho.

## Personalização da capacidade pré-inicializada para Spark e Hive
<a name="customizing-capacity"></a>

Você pode personalizar ainda mais a capacidade pré-inicializada de workloads executadas em estruturas específicas de big data. Por exemplo, quando uma workload é executada no Apache Spark, especifique quantos trabalhadores começam como drivers e quantos começam como executores. Da mesma forma, ao usar o Apache Hive, especifique quantos trabalhadores começam como drivers do Hive e quantos devem executar tarefas do Tez.

**Configuração de aplicações executando o Apache Hive com capacidade pré-inicializada**

A solicitação de API a seguir cria uma aplicação executando o Apache Hive com base na versão emr-6.6.0 do Amazon EMR. A aplicação começa com 5 drivers pré-inicializados do Hive, cada um com 2 vCPUs e 4 GB de memória, e 50 trabalhadores pré-inicializados de tarefas do Tez, cada um com 4 vCPUs e 8 GB de memória. Quando as consultas do Hive são executadas nessa aplicação, elas primeiro usam os trabalhadores pré-inicializados e começam a ser executadas imediatamente. Se todos os trabalhadores pré-inicializados estiverem ocupados e mais trabalhos do Hive forem enviados, a aplicação pode escalar para um total de 400 vCPU e 1.024 GB de memória. Opcionalmente, você pode omitir a capacidade do trabalhador do `DRIVER` ou da `TEZ_TASK`.

```
aws emr-serverless create-application \
  --type "HIVE" \
  --name {{my-application-name}} \
  --release-label emr-6.6.0 \
  --initial-capacity '{
    "DRIVER": {
        "workerCount": 5,
        "workerConfiguration": {
            "cpu": "2vCPU",
            "memory": "4GB"
        }
    },
    "TEZ_TASK": {
        "workerCount": 50,
        "workerConfiguration": {
            "cpu": "4vCPU",
            "memory": "8GB"
        }
    }
  }' \
  --maximum-capacity '{
    "cpu": "400vCPU",
    "memory": "1024GB"
  }'
```

**Configuração de aplicações executando o Apache Spark com capacidade pré-inicializada**

A solicitação de API a seguir cria uma aplicação que executa o Apache Spark 3.2.0 com base na versão 6.6.0 do Amazon EMR. A aplicação começa com 5 drivers pré-inicializados do Spark, cada um com 2 vCPUs e 4 GB de memória, e 50 executores pré-inicializados, cada um com 4 vCPUs e 8 GB de memória. Quando os trabalhos do Spark são executados nessa aplicação, eles primeiro usam os trabalhadores pré-inicializados e começam a ser executados imediatamente. Se todos os trabalhadores pré-inicializados estiverem ocupados e mais trabalhos do Spark forem enviados, a aplicação pode escalar para um total de 400 vCPU e 1.024 GB de memória. Opcionalmente, você pode omitir a capacidade do `DRIVER` ou do `EXECUTOR`.

**nota**  
O Spark adiciona uma sobrecarga de memória configurável, com um valor padrão de 10%, à memória solicitada pelo driver e pelos executores. Para que os trabalhos usem trabalhadores pré-inicializados, a configuração inicial da memória de capacidade deve ser maior do que a memória solicitada pelo trabalho e pela sobrecarga.

```
aws emr-serverless create-application \
  --type "SPARK" \
  --name {{my-application-name}} \
  --release-label emr-6.6.0 \
  --initial-capacity '{
    "DRIVER": {
        "workerCount": 5,
        "workerConfiguration": {
            "cpu": "2vCPU",
            "memory": "4GB"
        }
    },
    "EXECUTOR": {
        "workerCount": 50,
        "workerConfiguration": {
            "cpu": "4vCPU",
            "memory": "8GB"
        }
    }
  }' \
  --maximum-capacity '{
    "cpu": "400vCPU",
    "memory": "1024GB"
  }'
```