

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

# Começando a partir do AWS CLI
<a name="gs-cli"></a>

Comece a usar o EMR Serverless a partir dos comandos AWS CLI with para criar um aplicativo, executar trabalhos, verificar a saída da execução do trabalho e excluir seus recursos.

## Etapa 1: criar uma aplicação do EMR Sem Servidor
<a name="gs-application-cli"></a>

Use o comando [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_CreateApplication.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_CreateApplication.html) para criar sua primeira aplicação do EMR Sem Servidor. Você precisa especificar o tipo de aplicação e o rótulo de lançamento do Amazon EMR associado à versão da aplicação que deseja usar. O nome da aplicação é opcional.

------
#### [ Spark ]

Para criar uma aplicação do Spark, execute o comando a seguir.

```
aws emr-serverless create-application \
    --release-label emr-6.6.0 \
    --type "SPARK" \
    --name my-application
```

------
#### [ Hive ]

Para criar uma aplicação do Hive, execute o comando a seguir. 

```
aws emr-serverless create-application \
    --release-label emr-6.6.0 \
    --type "HIVE" \
    --name my-application
```

------

Anote o ID da aplicação retornado na saída. Você usará o ID para iniciar a aplicação e durante o envio do trabalho, depois chamado de `application-id`.

Antes de prosseguir para [Etapa 2: enviar uma execução de trabalho à aplicação do EMR Sem Servidor](#gs-job-run-cli), certifique-se de que a aplicação tenha atingido o estado `CREATED` com a API [https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetApplication.html).

```
aws emr-serverless get-application \
    --application-id application-id
```

O EMR Sem Servidor cria trabalhadores para acomodar seus trabalhos solicitados. Por padrão, eles são criados sob demanda, mas você também pode especificar uma capacidade pré-inicializada definindo o parâmetro `initialCapacity` ao criar a aplicação. Você também pode limitar a capacidade máxima total que uma aplicação pode usar com o parâmetro `maximumCapacity`. Para saber mais sobre essas opções, consulte [Configuração de uma aplicação ao trabalhar com o EMR Sem Servidor](application-capacity.md).

## Etapa 2: enviar uma execução de trabalho à aplicação do EMR Sem Servidor
<a name="gs-job-run-cli"></a>

Agora, a aplicação do EMR Sem Servidor está pronta para executar trabalhos.

------
#### [ Spark ]

Nesta etapa, usamos um PySpark script para calcular o número de ocorrências de palavras exclusivas em vários arquivos de texto. Um bucket do S3 público e somente leitura armazena o script e o conjunto de dados. A aplicação envia o arquivo de saída e os dados de log do runtime do Spark aos diretórios de `/output` e `/logs` no bucket do S3 que você criou. 

**Para executar um trabalho do Spark**

1. Use o comando a seguir para copiar o exemplo de script que executaremos no novo bucket.

   ```
   aws s3 cp s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py s3://amzn-s3-demo-bucket/scripts/
   ```

1. No comando a seguir, substitua `application-id` pelo ID da aplicação. Substitua `job-role-arn` pelo ARN do perfil de runtime que você criou em [Criação de um perfil de runtime de trabalhos](getting-started.md#gs-runtime-role). Substitua *`job-run-name`* pelo nome que deseja chamar a execução do trabalho. Substitua todas as strings `amzn-s3-demo-bucket` pelo bucket do Amazon S3 que você criou e adicione `/output` ao caminho. Isso cria uma pasta no seu bucket na qual o EMR Sem Servidor pode copiar os arquivos de saída da aplicação.

   ```
   aws emr-serverless start-job-run \
       --application-id application-id \
       --execution-role-arn job-role-arn \
       --name job-run-name \
       --job-driver '{
           "sparkSubmit": {
             "entryPoint": "s3://amzn-s3-demo-bucket/scripts/wordcount.py",
             "entryPointArguments": ["s3://amzn-s3-demo-bucket/emr-serverless-spark/output"],
             "sparkSubmitParameters": "--conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1"
           }
       }'
   ```

1. Anote o ID de execução do trabalho retornado na saída. Substitua `job-run-id` por esse ID nas etapas a seguir.

------
#### [ Hive ]

Neste tutorial, criamos uma tabela, inserimos alguns registros e executamos uma consulta de agregação de contagem. Para executar o trabalho do Hive, primeiro crie um arquivo que contenha todas as consultas do Hive a serem executadas como parte de um único trabalho, faça upload do arquivo no S3 e especifique esse caminho do S3 ao iniciar o trabalho do Hive.

**Para executar um trabalho do Hive**

1. Crie um arquivo chamado `hive-query.ql` que contenha todas as consultas que você deseja executar no trabalho do Hive.

   ```
   create database if not exists emrserverless;
   use emrserverless;
   create table if not exists test_table(id int);
   drop table if exists Values__Tmp__Table__1;
   insert into test_table values (1),(2),(2),(3),(3),(3);
   select id, count(id) from test_table group by id order by id desc;
   ```

1. Faça upload de `hive-query.ql` no bucket do S3 com o comando a seguir.

   ```
   aws s3 cp hive-query.ql s3://amzn-s3-demo-bucket/emr-serverless-hive/query/hive-query.ql
   ```

1. No comando a seguir, substitua `application-id` pelo ID da sua aplicação. Substitua `job-role-arn` pelo ARN do perfil de runtime que você criou em [Criação de um perfil de runtime de trabalhos](getting-started.md#gs-runtime-role). Substitua todas as strings `amzn-s3-demo-bucket` pelo bucket do Amazon S3 que você criou e adicione `/output` e `/logs` ao caminho. Isso cria pastas no bucket, nas quais o EMR Sem Servidor pode copiar os arquivos de saída e de log da aplicação.

   ```
   aws emr-serverless start-job-run \
       --application-id application-id \
       --execution-role-arn job-role-arn \
       --job-driver '{
           "hive": {
             "query": "s3://amzn-s3-demo-bucket/emr-serverless-hive/query/hive-query.ql",
             "parameters": "--hiveconf hive.log.explain.output=false"
           }
       }' \
       --configuration-overrides '{
         "applicationConfiguration": [{
           "classification": "hive-site",
             "properties": {
               "hive.exec.scratchdir": "s3://amzn-s3-demo-bucket/emr-serverless-hive/hive/scratch",
               "hive.metastore.warehouse.dir": "s3://amzn-s3-demo-bucket/emr-serverless-hive/hive/warehouse",
               "hive.driver.cores": "2",
               "hive.driver.memory": "4g",
               "hive.tez.container.size": "4096",
               "hive.tez.cpu.vcores": "1"
               }
           }],
           "monitoringConfiguration": {
             "s3MonitoringConfiguration": {
               "logUri": "s3://amzn-s3-demo-bucket/emr-serverless-hive/logs"
              }
           }
       }'
   ```

1. Anote o ID de execução do trabalho retornado na saída. Substitua `job-run-id` por esse ID nas etapas a seguir.

------

## Etapa 3: revisar a saída da execução do trabalho
<a name="gs-output-cli"></a>

A execução do trabalho normalmente leva de 3 a 5 minutos para ser concluída. 

------
#### [ Spark ]

Você pode verificar o estado do trabalho do Spark com o comando a seguir.

```
aws emr-serverless get-job-run \
    --application-id application-id \
    --job-run-id job-run-id
```

Com o destino do log definido como `s3://amzn-s3-demo-bucket/emr-serverless-spark/logs`, você pode encontrar os logs desse trabalho específico executado em `s3://amzn-s3-demo-bucket/emr-serverless-spark/logs/applications/application-id/jobs/job-run-id`. 

Em aplicações do Spark, o EMR Sem Servidor envia logs de eventos a cada 30 segundos para a pasta `sparklogs` no destino de log do S3. Quando o trabalho for concluído, os logs de runtime do Spark para o driver e os executores são enviados a pastas nomeadas apropriadamente pelo tipo de trabalhador, como `driver` ou `executor`. A saída do PySpark trabalho é enviada para o. `s3://amzn-s3-demo-bucket/output/`

------
#### [ Hive ]

Você pode verificar o estado do trabalho do Hive com o comando a seguir.

```
aws emr-serverless get-job-run \
    --application-id application-id \
    --job-run-id job-run-id
```

Com o destino do log definido como `s3://amzn-s3-demo-bucket/emr-serverless-hive/logs`, você pode encontrar os logs desse trabalho específico executado em `s3://amzn-s3-demo-bucket/emr-serverless-hive/logs/applications/application-id/jobs/job-run-id`. 

Em aplicações do Hive, o EMR Sem Servidor faz upload contínuo do driver do Hive para a pasta `HIVE_DRIVER` e os logs de tarefas do Tez para a pasta `TEZ_TASK` do destino de log do S3. Depois que a execução do trabalho atinge o estado `SUCCEEDED`, a saída da consulta do Hive fica disponível no local do Amazon S3 que você especificou no campo `monitoringConfiguration` de `configurationOverrides`. 

------

## Etapa 4: limpar
<a name="gs-cleanup-cli"></a>

Após terminar de trabalhar com este tutorial, considere excluir os recursos criados por você. É recomendável liberar recursos que você não pretende usar novamente.

### Exclua a aplicação
<a name="delete-application-cli"></a>

Para excluir uma aplicação, use o comando a seguir. 

```
aws emr-serverless delete-application \
    --application-id application-id
```

### Exclusão do bucket de logs do S3
<a name="delete-s3-bucket-cli"></a>

Para excluir o bucket de registro em log e saída do S3, use o comando a seguir. Substitua `amzn-s3-demo-bucket` pelo nome real do bucket do S3 criado em [Preparação do armazenamento do EMR Sem Servidor](getting-started.md#gs-prepare-storage).

```
aws s3 rm s3://amzn-s3-demo-bucket --recursive
aws s3api delete-bucket --bucket amzn-s3-demo-bucket
```

### Exclusão do perfil de runtime do trabalho
<a name="delete-runtime-role-cli"></a>

Para excluir o perfil de runtime, separe a política do perfil. Em seguida, você pode excluir o perfil e a política.

```
aws iam detach-role-policy \
    --role-name EMRServerlessS3RuntimeRole \
    --policy-arn policy-arn
```

Para excluir o perfil, use o comando a seguir.

```
aws iam delete-role \
    --role-name EMRServerlessS3RuntimeRole
```

Para excluir a política anexada ao perfil, use o comando a seguir.

```
aws iam delete-policy \
    --policy-arn policy-arn
```

Para obter mais exemplos de execução de trabalhos do Spark e do Hive, consulte [Uso das configurações do Spark ao executar trabalhos do EMR Sem Servidor](jobs-spark.md) e [Uso das configurações do Hive ao executar trabalhos do EMR Sem Servidor](jobs-hive.md).