

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 Flink
<a name="jobruns-flink-kubernetes-operator-run-application"></a>

Com as versões 6.13.0 e superiores do Amazon EMR, você pode executar uma aplicação do Flink usando o operador do Kubernetes para Flink no modo Aplicação do Amazon EMR no EKS. Com as versões 6.15.0 e superiores do Amazon EMR, você também pode executar uma aplicação do Flink no modo Sessão. Esta página descreve ambos os métodos para executar uma aplicação do Flink com o Amazon EMR no EKS.

**Topics**

**nota**  
Você deve ter um bucket do Amazon S3 criado para armazenar os metadados de alta disponibilidade ao enviar o trabalho do Flink. Se não desejar esse atributo, você poderá desativá-lo. Por padrão, ele é habilitado.

**Pré-requisito**: antes de executar uma aplicação do Flink com o operador do Kubernetes para Flink, conclua as etapas em [Configuração do operador do Kubernetes para Flink para o Amazon EMR no EKS](jobruns-flink-kubernetes-operator-setup.md) e [Como instalar o operador do Kubernetes](jobruns-flink-kubernetes-operator-getting-started.md#jobruns-flink-kubernetes-operator-getting-started-install-operator).

------
#### [ Application mode ]

Com as versões 6.13.0 e superiores do Amazon EMR, você pode executar uma aplicação do Flink usando o operador do Kubernetes para Flink no modo Aplicação do Amazon EMR no EKS.

1. Crie um arquivo `basic-example-app-cluster.yaml` de definição `FlinkDeployment` como no exemplo a seguir. Se você ativou e usou um dos [opt-in Regiões da AWS](https://docs.aws.amazon.com/controltower/latest/userguide/opt-in-region-considerations.html), certifique-se de descomentar e configurar a configuração. `fs.s3a.endpoint.region`

   ```
   apiVersion: flink.apache.org/v1beta1
   kind: FlinkDeployment
   metadata:
     name: basic-example-app-cluster
   spec:
     flinkConfiguration:
       taskmanager.numberOfTaskSlots: "2"
       #fs.s3a.endpoint.region: OPT_IN_AWS_REGION_NAME
       state.checkpoints.dir: CHECKPOINT_S3_STORAGE_PATH
       state.savepoints.dir: SAVEPOINT_S3_STORAGE_PATH 
     flinkVersion: v1_17
     executionRoleArn: JOB_EXECUTION_ROLE_ARN
     emrReleaseLabel: "emr-6.13.0-flink-latest" # 6.13 or higher
     jobManager:
       storageDir: HIGH_AVAILABILITY_STORAGE_PATH
       resource:
         memory: "2048m"
         cpu: 1
     taskManager:
       resource:
         memory: "2048m"
         cpu: 1
     job:
       # if you have your job jar in S3 bucket you can use that path as well
       jarURI: local:///opt/flink/examples/streaming/StateMachineExample.jar
       parallelism: 2
       upgradeMode: savepoint
       savepointTriggerNonce: 0
     monitoringConfiguration:    
       cloudWatchMonitoringConfiguration:
          logGroupName: LOG_GROUP_NAME
   ```

1. Envie a implantação do Flink com o comando apresentado a seguir. Isso também criará um objeto `FlinkDeployment` chamado `basic-example-app-cluster`.

   ```
   kubectl create -f basic-example-app-cluster.yaml -n <NAMESPACE>
   ```

1. Acesse a interface do usuário do Flink.

   ```
   kubectl port-forward deployments/basic-example-app-cluster 8081 -n NAMESPACE
   ```

1. Abra `localhost:8081` para visualizar os trabalhos do Flink localmente.

1. Limpe o trabalho. Lembre-se de limpar os artefatos do S3 que foram criados para esse trabalho, como pontos de verificação, alta disponibilidade, metadados de pontos de salvamento e registros. CloudWatch

Para obter mais informações sobre o envio de inscrições para o Flink por meio do operador Flink Kubernetes, consulte exemplos de operadores do [Flink Kubernetes](https://github.com/apache/flink-kubernetes-operator/tree/main/examples) na pasta em. `apache/flink-kubernetes-operator` GitHub

------
#### [ Session mode ]

Com as versões 6.15.0 e superiores do Amazon EMR, você pode executar uma aplicação do Flink usando o operador do Kubernetes para Flink no modo Sessão no Amazon EMR no EKS.

1. Crie um arquivo de definição `FlinkDeployment` chamado `basic-example-app-cluster.yaml` como no exemplo a seguir. Se você ativou e usou um dos [opt-in Regiões da AWS](https://docs.aws.amazon.com/controltower/latest/userguide/opt-in-region-considerations.html), certifique-se de descomentar e configurar a configuração. `fs.s3a.endpoint.region`

   ```
   apiVersion: flink.apache.org/v1beta1
   kind: FlinkDeployment
   metadata:
     name: basic-example-session-cluster
   spec:
     flinkConfiguration:
       taskmanager.numberOfTaskSlots: "2"
       #fs.s3a.endpoint.region: OPT_IN_AWS_REGION_NAME
       state.checkpoints.dir: CHECKPOINT_S3_STORAGE_PATH
       state.savepoints.dir: SAVEPOINT_S3_STORAGE_PATH
     flinkVersion: v1_17
     executionRoleArn: JOB_EXECUTION_ROLE_ARN
     emrReleaseLabel: "emr-6.15.0-flink-latest"
     jobManager:
       storageDir: HIGH_AVAILABILITY_S3_STORAGE_PATH
       resource:
         memory: "2048m"
         cpu: 1
     taskManager:
       resource:
         memory: "2048m"
         cpu: 1
     monitoringConfiguration:    
       s3MonitoringConfiguration:
          logUri: 
       cloudWatchMonitoringConfiguration:
          logGroupName: LOG_GROUP_NAME
   ```

1. Envie a implantação do Flink com o comando apresentado a seguir. Isso também criará um objeto `FlinkDeployment` chamado `basic-example-session-cluster`.

   ```
   kubectl create -f basic-example-app-cluster.yaml -n NAMESPACE
   ```

1. Use o seguinte comando para confirmar se o cluster da sessão `LIFECYCLE` é `STABLE`:

   ```
   kubectl get flinkdeployments.flink.apache.org basic-example-session-cluster -n NAMESPACE
   ```

   A saída deve ser semelhante ao seguinte exemplo:

   ```
   NAME                              JOB STATUS   LIFECYCLE STATE
   basic-example-session-cluster                          STABLE
   ```

1. Crie um arquivo `basic-session-job.yaml` de recursos de definição personalizado do `FlinkSessionJob` com o seguinte conteúdo de exemplo:

   ```
   apiVersion: flink.apache.org/v1beta1
   kind: FlinkSessionJob
   metadata:
     name: basic-session-job
   spec:
     deploymentName: basic-session-deployment
     job:
       # If you have your job jar in an S3 bucket you can use that path.
       # To use jar in S3 bucket, set 
       # OPERATOR_EXECUTION_ROLE_ARN (--set emrContainers.operatorExecutionRoleArn=$OPERATOR_EXECUTION_ROLE_ARN)
       # when you install Spark operator
       jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.16.1/flink-examples-streaming_2.12-1.16.1-TopSpeedWindowing.jar
       parallelism: 2
       upgradeMode: stateless
   ```

1. Envie o trabalho de sessão do Flink com o comando apresentado a seguir. Isso criará um objeto do `FlinkSessionJob` `basic-session-job`.

   ```
   kubectl apply -f basic-session-job.yaml -n $NAMESPACE
   ```

1. Use o seguinte comando para confirmar se o cluster da sessão `LIFECYCLE` é `STABLE` e o `JOB STATUS` é `RUNNING`:

   ```
   kubectl get flinkdeployments.flink.apache.org basic-example-session-cluster -n NAMESPACE
   ```

   A saída deve ser semelhante ao seguinte exemplo:

   ```
   NAME                              JOB STATUS   LIFECYCLE STATE
   basic-example-session-cluster     RUNNING      STABLE
   ```

1. Acesse a interface do usuário do Flink.

   ```
   kubectl port-forward deployments/basic-example-session-cluster 8081 -n NAMESPACE
   ```

1. Abra `localhost:8081` para visualizar os trabalhos do Flink localmente.

1. Limpe o trabalho. Lembre-se de limpar os artefatos do S3 que foram criados para esse trabalho, como pontos de verificação, alta disponibilidade, metadados de pontos de salvamento e registros. CloudWatch

------