

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

# Execução de uma aplicação do Spark com o Apache Livy para o Amazon EMR no EKS
<a name="job-runs-apache-livy-run-spark"></a>

Antes de executar uma aplicação do Spark com o Apache Livy, certifique-se de ter concluído as etapas em [Configuração do Apache Livy para o Amazon EMR no EKS](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/job-runs-apache-livy-setup.html) e [Getting started with Apache Livy for Amazon EMR on EKS](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/job-runs-apache-livy-install.html).

Você pode usar o Apache Livy para executar dois tipos de aplicações:
+ Sessões em lote: um tipo de workload do Livy para enviar trabalhos em lote do Spark.
+ Sessões interativas: um tipo de workload do Livy que fornece uma interface programática e visual para executar consultas do Spark.

**nota**  
Pods de drivers e de executores de sessões diferentes podem se comunicar entre si. Os namespaces não garantem nenhuma segurança entre os pods. O Kubernetes não aceita permissões seletivas em um subconjunto de pods dentro de um determinado namespace.

## Execução de sessões em lote
<a name="job-runs-apache-livy-run-spark-batch"></a>

Para enviar um trabalho em lote, use o comando a seguir.

```
curl -s -k -H 'Content-Type: application/json' -X POST \
      -d '{
            "name": "my-session",
            "file": "entryPoint_location (S3 or local)",
            "args": ["argument1", "argument2", ...],
            "conf": {
                "spark.kubernetes.namespace": "<spark-namespace>",
                "spark.kubernetes.container.image": "public.ecr.aws/emr-on-eks/spark/emr-7.12.0:latest",
                "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>"
            }
          }' <livy-endpoint>/batches
```

Para monitorar seu trabalho em lote, use o comando a seguir.

```
curl -s -k -H 'Content-Type: application/json' -X GET <livy-endpoint>/batches/my-session
```

## Execução de sessões interativas
<a name="job-runs-apache-livy-run-spark-interactive"></a>

Para executar sessões interativas com o Apache Livy, consulte as etapas a seguir.

1. Certifique-se de ter acesso a um notebook Jupyter auto-hospedado ou gerenciado, como um notebook SageMaker AI Jupyter. O caderno Jupyter deve ter o [sparkmagic](https://github.com/jupyter-incubator/sparkmagic/blob/master/README.md) instalado.

1. Crie um bucket para a configuração `spark.kubernetes.file.upload.path` do Spark. Certifique-se de que a conta de serviço do Spark tenha acesso de leitura e gravação ao bucket. Para obter mais detalhes sobre como configurar a conta de serviço do Spark, consulte Setting up access permissions with IAM roles for service accounts (IRSA)

1. Faça upload do sparkmagic no caderno Jupyter com o comando `%load_ext sparkmagic.magics`.

1. Execute o comando `%manage_spark` para configurar o endpoint do Livy com o caderno Jupyter. Selecione a guia **Adicionar endpoints**, escolha o tipo de autenticação configurado, adicione o endpoint do Livy ao caderno e escolha **Adicionar endpoint**.

1. Execute `%manage_spark` novamente para criar o contexto do Spark e vá para **Criar sessão**. Escolha o endpoint do Livy, especifique um nome de sessão exclusivo, escolha um idioma e adicione as propriedades a seguir.

   ```
   {
     "conf": {
       "spark.kubernetes.namespace": "livy-namespace",
       "spark.kubernetes.container.image": "public.ecr.aws/emr-on-eks/spark/emr-7.12.0:latest",
       "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>", 
       "spark.kubernetes.file.upload.path": "<URI_TO_S3_LOCATION_>"
     }
   }
   ```

1. Envie a aplicação e espere que ela crie o contexto do Spark.

1. Para monitorar o status da sessão interativa, execute o comando a seguir.

   ```
   curl -s -k -H 'Content-Type: application/json' -X GET livy-endpoint/sessions/my-interactive-session
   ```

## Monitoramento de aplicações do Spark
<a name="job-runs-apache-livy-run-ui"></a>

Para monitorar o progresso das aplicações do Spark com a interface de usuário do Livy, use o link `http://<livy-endpoint>/ui`.