

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Apache Flink
<a name="emr-flink"></a>

[Apache Flink](https://flink.apache.org/) est un moteur de flux de données en streaming permettant de traiter des flux en temps réel sur des sources de données à haut débit. Flink prend en charge la sémantique de l'heure des out-of-order événements pour les événements, la sémantique d'une seule fois, le contrôle de la contre-pression, et est APIs optimisé pour écrire à la fois des applications de streaming et des applications par lots.

En outre, Flink a des connecteurs pour les sources de données tierces, telles que :
+ [Amazon Kinesis Data Streams](https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/connectors/kinesis.html)
+ [Apache Kafka](https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/connectors/kafka.html)
+ [Connecteur Flink Elasticsearch](https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/connectors/elasticsearch2.html)
+ [API de streaming Twitter](https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/connectors/twitter.html)
+ [Cassandra](https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/connectors/cassandra.html)

Amazon EMR prend en charge Flink en tant qu'application YARN afin que vous puissiez gérer les ressources avec d'autres applications au sein d'un cluster. Flink-on-YARNvous permet de soumettre des tâches Flink transitoires, ou vous pouvez créer un cluster de longue durée qui accepte plusieurs tâches et alloue des ressources en fonction de la réservation YARN globale.

Flink est inclus dans les versions 5.1.0 et ultérieures d'Amazon EMR.

**Note**  
La prise en charge de la classe `FlinkKinesisConsumer` a été ajoutée dans Amazon EMR version 5.2.1.

Le tableau suivant répertorie la version de Flink incluse dans la dernière version d’Amazon EMR série 7.x, ainsi que les composants qu’Amazon EMR installe avec Flink.

Pour la version des composants installés avec Flink dans cette version, consultez la [version 7.12.0](emr-7120-release.md) Versions des composants.


**Informations de version de Flink pour emr-7.12.0**  

| Étiquette de version Amazon EMR | Version Flink | Composants installés avec Flink | 
| --- | --- | --- | 
| emr-7,12.0 | Flink 1.20.0-amzn-6 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-hdfs-zkfc, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 

Le tableau suivant répertorie la version de Flink incluse dans la dernière version d'Amazon EMR série 6.x, ainsi que les composants qu'Amazon EMR installe avec Flink.

Pour connaître la version des composants installés avec Flink dans cette version, consultez les [versions des composants de la version 6.15.0](emr-6150-release.md).


**Informations sur la version de Flink pour emr-6.15.0**  

| Étiquette de version Amazon EMR | Version Flink | Composants installés avec Flink | 
| --- | --- | --- | 
| emr-6.15.0 | Flink 1.17.1-amzn-1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta-standalone-connectors | 

Le tableau suivant répertorie la version de Flink incluse dans la dernière version d'Amazon EMR série 5.x, ainsi que les composants qu'Amazon EMR installe avec Flink.

Pour la version des composants installés avec Flink dans cette version, voir la [version 5.36.2](emr-5362-release.md) Versions des composants.


**Informations de version de Flink pour emr-5.36.2**  

| Étiquette de version Amazon EMR | Version Flink | Composants installés avec Flink | 
| --- | --- | --- | 
| emr-5.36.2 | Flink 1.14.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 

**Topics**
+ [Création d'un cluster avec Flink](flink-create-cluster.md)
+ [Configuration de Flink dans Amazon EMR](flink-configure.md)
+ [Utilisation des tâches Flink dans Amazon EMR](flink-jobs.md)
+ [Utilisation du shell Scala](flink-scala.md)
+ [Recherche de l'interface web Flink](flink-web-interface.md)
+ [Outil de mise à l’échelle automatique Flink](flink-autoscaler.md)
+ [Optimisation des temps de redémarrage pour les opérations de récupération et de mise à l’échelle de tâches](flink-restart.md)
+ [Travailler avec les jobs Flink de Zeppelin dans Amazon EMR](flink-zeppelin.md)
+ [Historique des publications de Flink](Flink-release-history.md)

# Création d'un cluster avec Flink
<a name="flink-create-cluster"></a>

Vous pouvez lancer un cluster avec le AWS Management Console AWS CLI, ou un AWS SDK.<a name="emr-flink-create-console"></a>

**Pour lancer un cluster avec Flink installé depuis la console**

1. [Ouvrez la console Amazon EMR à l'adresse /emr. https://console.aws.amazon.com](https://console.aws.amazon.com/emr/)

1. Choisissez **Créer un cluster** et **Go to advanced options (Aller aux options avancées)**.

1.  Pour la **Software Configuration (Configuration des logiciels)**, choisissez **Version EMR emr-5.1.0** ou des versions ultérieures.

1.  Choisissez **Flink** comme application, de même que toute autre application à installer.

1.  Sélectionnez d'autres options si nécessaire, puis choisissez **Create cluster (Créer un cluster)**.

**Pour lancer un cluster avec Flink depuis le AWS CLI**
+ Créez le cluster à l'aide de la commande suivante :

  ```
  aws emr create-cluster --release-label emr-7.12.0 \
  --applications Name=Flink \
  --region us-east-1 \
  --log-uri s3://myLogUri \
  --instance-type m5.xlarge \
  --instance-count 2 \
  --service-role EMR_DefaultRole_V2 \ 
  --ec2-attributes KeyName=MyKeyName,InstanceProfile=EMR_EC2_DefaultRole \
  --steps Type=CUSTOM_JAR,Jar=command-runner.jar,Name=Flink_Long_Running_Session,\
  Args=flink-yarn-session,-d
  ```
**Note**  
Les caractères de continuation de ligne Linux (\$1) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).

# Configuration de Flink dans Amazon EMR
<a name="flink-configure"></a>

## Configuration de Flink avec Hive Metastore et Glue Catalog
<a name="flink-configure-hive"></a>

Les versions 6.9.0 et supérieures d'Amazon EMR prennent en charge à la fois Hive Metastore et AWS Glue Catalog avec le connecteur Apache Flink vers Hive. Cette section décrit les étapes nécessaires pour configurer [AWS Glue Catalog](#flink-configure-hive-glue) et [Hive Metastore](#flink-configure-hive-metastore) avec Flink.

**Topics**
+ [Utilisation de Hive Metastore](#flink-configure-hive-metastore)
+ [Utiliser le catalogue AWS de données Glue](#flink-configure-hive-glue)

### Utilisation de Hive Metastore
<a name="flink-configure-hive-metastore"></a>

1. Créez un cluster EMR avec la version 6.9.0 ou supérieure et au moins deux applications : **Hive** et **Flink**. 

1. Utilisez [script runner](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-commandrunner.html) pour exécuter le script suivant en tant que fonction d'étape :

   `hive-metastore-setup.sh`

   ```
   sudo cp /usr/lib/hive/lib/antlr-runtime-3.5.2.jar /usr/lib/flink/lib 
   sudo cp /usr/lib/hive/lib/hive-exec-3.1.3*.jar /lib/flink/lib 
   sudo cp /usr/lib/hive/lib/libfb303-0.9.3.jar /lib/flink/lib 
   sudo cp /usr/lib/flink/opt/flink-connector-hive_2.12-1.15.2.jar /lib/flink/lib
   sudo chmod 755 /usr/lib/flink/lib/antlr-runtime-3.5.2.jar 
   sudo chmod 755 /usr/lib/flink/lib/hive-exec-3.1.3*.jar 
   sudo chmod 755 /usr/lib/flink/lib/libfb303-0.9.3.jar
   sudo chmod 755 /usr/lib/flink/lib/flink-connector-hive_2.12-1.15.2.jar
   ```  
![\[Form to add a Custom JAR step with fields for step type, name, JAR location, arguments, and failure action.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/hive.png)

### Utiliser le catalogue AWS de données Glue
<a name="flink-configure-hive-glue"></a>

1. Créez un cluster EMR avec la version 6.9.0 ou supérieure et au moins deux applications : **Hive** et **Flink**. 

1. Sélectionnez **Utiliser les métadonnées de la table Hive** dans les paramètres du catalogue de données AWS Glue pour activer le catalogue de données dans le cluster.

1. Utilisez le [script runner](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-commandrunner.html) pour exécuter le script suivant en tant que fonction d'étape : [Exécuter des commandes et des scripts sur un cluster Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-commandrunner.html) :

   glue-catalog-setup.sh 

   ```
   sudo cp /usr/lib/hive/auxlib/aws-glue-datacatalog-hive3-client.jar /usr/lib/flink/lib 
   sudo cp /usr/lib/hive/lib/antlr-runtime-3.5.2.jar /usr/lib/flink/lib 
   sudo cp /usr/lib/hive/lib/hive-exec-3.1.3*.jar /lib/flink/lib 
   sudo cp /usr/lib/hive/lib/libfb303-0.9.3.jar /lib/flink/lib 
   sudo cp /usr/lib/flink/opt/flink-connector-hive_2.12-1.15.2.jar /lib/flink/lib
   sudo chmod 755 /usr/lib/flink/lib/aws-glue-datacatalog-hive3-client.jar 
   sudo chmod 755 /usr/lib/flink/lib/antlr-runtime-3.5.2.jar 
   sudo chmod 755 /usr/lib/flink/lib/hive-exec-3.1.3*.jar 
   sudo chmod 755 /usr/lib/flink/lib/libfb303-0.9.3.jar
   sudo chmod 755 /usr/lib/flink/lib/flink-connector-hive_2.12-1.15.2.jar
   ```  
![\[Form to add a Custom JAR step with fields for step type, name, JAR location, arguments, and failure action.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/hive.png)

## Configurer Flink avec un fichier de configuration
<a name="flink-configure-config"></a>

Vous pouvez utiliser l'API de configuration Amazon EMR pour configurer Flink à l'aide d'un fichier de configuration. Les fichiers configurables dans l'API sont les suivants :
+ `flink-conf.yaml`
+ `log4j.properties`
+ `flink-log4j-session`
+ `log4j-cli.properties`

Le fichier de configuration principal de Flink est `flink-conf.yaml`. 

**Pour configurer le nombre de créneaux de tâches utilisés pour Flink à partir du AWS CLI**

1. Créez un fichier, `configurations.json`, contenant les éléments suivants :

   ```
   [
       {
         "Classification": "flink-conf",
         "Properties": {
           "taskmanager.numberOfTaskSlots":"2"
         }
       }
   ]
   ```

1. Créez ensuite un cluster à l'aide de la configuration suivante :

   ```
   aws emr create-cluster --release-label emr-7.12.0 \
   --applications Name=Flink \
   --configurations file://./configurations.json \
   --region us-east-1 \
   --log-uri s3://myLogUri \
   --instance-type m5.xlarge \
   --instance-count 2 \
   --service-role EMR_DefaultRole_V2 \ 
   --ec2-attributes KeyName=YourKeyName,InstanceProfile=EMR_EC2_DefaultRole
   ```

**Note**  
Vous pouvez également modifier certaines configurations avec l'API Flink. Pour plus d'informations, consultez [https://ci.apache.org/projects/flink/flink-docs-release-1.12/concepts/index.html](https://ci.apache.org/projects/flink/flink-docs-release-1.12/concepts/index.html) dans la documentation Flink.  
Avec la version 5.21.0 et ultérieures d'Amazon EMR, vous permet de remplacer les configurations de cluster et de spécifier des classifications de configuration supplémentaires pour chaque groupe d'instances dans un cluster en cours d'exécution. Pour ce faire, utilisez la console Amazon EMR, le AWS Command Line Interface (AWS CLI) ou le AWS SDK. Pour plus d'informations, consultez [Fourniture d'une configuration pour un groupe d'instances dans un cluster en cours d'exécution](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html).

### Options de parallélisme
<a name="flink-parallelism"></a>

En tant que propriétaire de votre application, c'est vous qui savez le mieux quelles ressources attribuer aux tâches dans Flink. Pour les exemples de cette documentation, utilisez le même nombre de tâches que les instances de tâches que vous utilisez pour l'application. Généralement, nous recommandons cela pour le niveau initial de parallélisme, mais vous pouvez également augmenter la granularité de parallélisme à l'aide des emplacements de tâches, qui ne doivent généralement pas dépasser le nombre de [cœurs virtuels](https://aws.amazon.com/ec2/virtualcores/) par instance. Pour plus d'informations sur l'architecture de Flink, consultez [https://ci.apache.org/projects/flink/flink-docs-master/concepts/index.html](https://ci.apache.org/projects/flink/flink-docs-master/concepts/index.html) dans la documentation Flink.

## Configuration de Flink sur un cluster EMR doté de plusieurs nœuds primaires
<a name="flink-multi-master"></a>

Le JobManager de Flink reste disponible pendant le processus de basculement du nœud principal dans un cluster Amazon EMR comportant plusieurs nœuds principaux. À partir d'Amazon EMR 5.28.0, la JobManager haute disponibilité est également activée automatiquement. Aucune configuration manuelle n'est nécessaire.

Avec les versions 5.27.0 ou antérieures d'Amazon EMR, il s' JobManager agit d'un point de défaillance unique. En cas d' JobManager échec, il perd tous les états des tâches et ne reprend pas les tâches en cours d'exécution. Vous pouvez activer la JobManager haute disponibilité en configurant le nombre de tentatives d'application, le point de contrôle et ZooKeeper en activant le stockage d'état pour Flink, comme le montre l'exemple suivant :

```
[
  {
    "Classification": "yarn-site",
    "Properties": {
      "yarn.resourcemanager.am.max-attempts": "10"
    }
  },
  {
    "Classification": "flink-conf",
    "Properties": {
        "yarn.application-attempts": "10",
        "high-availability": "zookeeper",
        "high-availability.zookeeper.quorum": "%{hiera('hadoop::zk')}",
        "high-availability.storageDir": "hdfs:///user/flink/recovery",
        "high-availability.zookeeper.path.root": "/flink"
    }
  }
]
```

Vous devez configurer le nombre maximal de tentatives du maître d'application pour YARN et les tentatives d'application pour Flink. Pour plus d'informations, consultez [Configuration de la haute disponibilité du cluster YARN](https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/jobmanager_high_availability.html#maximum-application-master-attempts-yarn-sitexml). Vous pouvez également configurer le point de contrôle Flink pour que les tâches de JobManager restauration en cours d'exécution redémarrées soient restaurées à partir de points de contrôle précédemment terminés. Pour plus d'informations, consultez [Flink checkpointing](https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/stream/state/checkpointing.html).

## Configuration de la taille du processus de mémoire
<a name="flink-process-memory"></a>

Pour les versions d'Amazon EMR qui utilisent Flink 1.11.x, vous devez configurer la taille totale du processus de mémoire pour () et JobManager (`jobmanager.memory.process.size`) dans. TaskManager `taskmanager.memory.process.size` `flink-conf.yaml` Vous pouvez définir ces valeurs soit en configurant le cluster à l'aide de l'API de configuration, soit en décommentant manuellement ces champs via SSH. Flink fournit les valeurs par défaut suivantes.
+ `jobmanager.memory.process.size` : 1600m
+ `taskmanager.memory.process.size` : 1728m

Pour exclure le métaspace JVM et la surcharge, utilisez la taille de mémoire totale de Flink (`taskmanager.memory.flink.size`) au lieu de `taskmanager.memory.process.size`. La valeur par défaut du paramètre `taskmanager.memory.process.size` est 1280m. Il n'est pas recommandé de définir à la fois `taskmanager.memory.process.size` et `taskmanager.memory.process.size`.

Toutes les versions d'Amazon EMR qui utilisent Flink 1.12.0 et versions ultérieures ont les valeurs par défaut répertoriées dans l'ensemble open source pour Flink comme valeurs par défaut sur Amazon EMR. Vous n'avez donc pas besoin de les configurer vous-même.

## Configuration de la taille du fichier de sortie du journal
<a name="flink-log-output"></a>

Les conteneurs d'applications Flink créent et écrivent dans trois types de fichiers journaux : fichiers `.out`, fichiers `.log` et fichiers `.err`. Seuls `.err` les fichiers sont compressés et supprimés du système de fichiers, tandis que les fichiers journaux `.log` et `.out` restent dans le système de fichiers. Pour garantir la gérabilité de ces fichiers de sortie et la stabilité du cluster, vous pouvez configurer la rotation des journaux dans `log4j.properties` afin de définir un nombre maximum de fichiers et de limiter leur taille.

**Amazon EMR versions 5.30.0 et ultérieures**

À partir d'Amazon EMR 5.30.0, Flink utilise le framework de journalisation log4j2 avec le nom de classification de configuration `flink-log4j.`. L'exemple de configuration suivant illustre le format log4j2.

```
[
  {
    "Classification": "flink-log4j",
    "Properties": {
      "appender.main.name": "MainAppender",
      "appender.main.type": "RollingFile",
      "appender.main.append" : "false",
      "appender.main.fileName" : "${sys:log.file}",
      "appender.main.filePattern" : "${sys:log.file}.%i",
      "appender.main.layout.type" : "PatternLayout",
      "appender.main.layout.pattern" : "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n",
      "appender.main.policies.type" : "Policies",
      "appender.main.policies.size.type" : "SizeBasedTriggeringPolicy",
      "appender.main.policies.size.size" : "100MB",
      "appender.main.strategy.type" : "DefaultRolloverStrategy",
      "appender.main.strategy.max" : "10"
    },
  }
]
```

**Amazon EMR versions 5.29.0 et antérieures**

Avec les versions 5.29.0 et antérieures d'Amazon EMR, Flink utilise le framework de journalisation log4j. L'exemple de configuration suivant illustre le format log4j.

```
[
  {
    "Classification": "flink-log4j",
    "Properties": {
      "log4j.appender.file": "org.apache.log4j.RollingFileAppender",
      "log4j.appender.file.append":"true",
      # keep up to 4 files and each file size is limited to 100MB
      "log4j.appender.file.MaxFileSize":"100MB",
      "log4j.appender.file.MaxBackupIndex":4,
      "log4j.appender.file.layout":"org.apache.log4j.PatternLayout",
      "log4j.appender.file.layout.ConversionPattern":"%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n"
    },
  }
]
```

## Configurer Flink pour qu'il fonctionne avec Java 11
<a name="flink-configure-java11"></a>

Les versions 6.12.0 et supérieures d'Amazon EMR fournissent un support d'exécution Java 11 pour Flink. Les sections suivantes décrivent comment configurer le cluster pour fournir un support d'exécution Java 11 pour Flink.

**Topics**
+ [Configurer Flink pour Java 11 lorsque vous créez un cluster](#flink-configure-java11-create)
+ [Configurer Flink pour Java 11 sur un cluster en cours d'exécution](#flink-configure-java11-update)
+ [Confirmez le runtime Java pour Flink sur un cluster en cours d'exécution](#flink-configure-java11-confirm)

### Configurer Flink pour Java 11 lorsque vous créez un cluster
<a name="flink-configure-java11-create"></a>

Procédez comme suit pour créer un cluster EMR avec Flink et Java 11 Runtime. Le fichier de configuration dans lequel vous ajoutez la prise en charge de Java 11 est `flink-conf.yaml`.

------
#### [ Console ]

**Pour créer un cluster avec Flink et Java 11 Runtime dans la console**

1. [Connectez-vous au et ouvrez la AWS Management Console console Amazon EMR à l'adresse /emr. https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. Choisissez **Clusters** sous **EMR sur EC2** dans le volet de navigation, puis **Créer un cluster**.

1. Sélectionnez Amazon EMR version 6.12.0 ou supérieure, puis choisissez d'installer l'application Flink. Sélectionnez les autres applications que vous souhaitez installer sur votre cluster.

1. Poursuivez la configuration de votre cluster. Dans la section facultatifs **Paramètres logiciels**, utilisez l'option par défaut **Entrer un configuration** et entrez la configuration suivante :

   ```
   [
       {
         "Classification": "flink-conf",
         "Properties": {
           "containerized.taskmanager.env.JAVA_HOME":"/usr/lib/jvm/jre-11",
           "containerized.master.env.JAVA_HOME":"/usr/lib/jvm/jre-11",
           "env.java.home":"/usr/lib/jvm/jre-11"
         }
       }
   ]
   ```

1. Continuez à configurer et à lancer votre cluster.

------
#### [ AWS CLI ]

**Pour créer un cluster avec Flink et Java 11 Runtime à partir de la CLI**

1. Créez un fichier de configuration `configurations.json` qui configure Flink pour utiliser Java 11. 

   ```
   [
       {
         "Classification": "flink-conf",
         "Properties": {
           "containerized.taskmanager.env.JAVA_HOME":"/usr/lib/jvm/jre-11",
           "containerized.master.env.JAVA_HOME":"/usr/lib/jvm/jre-11",
           "env.java.home":"/usr/lib/jvm/jre-11"
         }
       }
   ]
   ```

1. À partir de AWS CLI, créez un nouveau cluster EMR avec Amazon EMR version 6.12.0 ou ultérieure, et installez l'application Flink, comme indiqué dans l'exemple suivant :

   ```
   aws emr create-cluster --release-label emr-6.12.0 \ 
   --applications Name=Flink \ 
   --configurations file://./configurations.json \ 
   --region us-east-1 \ 
   --log-uri s3://myLogUri \ 
   --instance-type m5.xlarge \ 
   --instance-count 2 \ 
   --service-role EMR_DefaultRole_V2 \ 
   --ec2-attributes KeyName=YourKeyName,InstanceProfile=EMR_EC2_DefaultRole
   ```

------

### Configurer Flink pour Java 11 sur un cluster en cours d'exécution
<a name="flink-configure-java11-update"></a>

Procédez comme suit pour mettre à jour un cluster EMR en cours d'exécution avec Flink et Java 11 Runtime. Le fichier de configuration dans lequel vous ajoutez la prise en charge de Java 11 est `flink-conf.yaml`.

------
#### [ Console ]

**Pour mettre à jour un cluster en cours d'exécution avec Flink et Java 11 Runtime dans la console**

1. [Connectez-vous au et ouvrez la AWS Management Console console Amazon EMR à l'adresse /emr. https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. Sélectionnez **Clusters** sous **EMR sur EC2** dans le panneau de navigation, puis sélectionnez le cluster que vous voulez mettre à jour.
**Note**  
Le cluster doit utiliser Amazon EMR version 6.12.0 ou ultérieure pour prendre en charge Java 11.

1. Sélectionnez l'onglet **Configurations**.

1. Dans la section **Configurations du groupe d'instances**, sélectionnez le groupe d'instances **en cours d'exécution** que vous souhaitez mettre à jour, puis choisissez **Reconfigurer** dans le menu d'actions de la liste.

1. Reconfigurez le groupe d'instances avec l'option **Modifier les attributs** comme suit. Sélectionnez **Ajouter une nouvelle configuration** après chacune d'entre elles.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/flink-configure.html)

1. Sélectionnez **Enregistrer les modifications** pour ajouter les configurations.

------
#### [ AWS CLI ]

**Pour mettre à jour un cluster en cours d'exécution afin d'utiliser Flink et le runtime Java 11 à partir de la CLI**

Utilisez la commande `modify-instance-groups` pour spécifier une nouvelle configuration pour un groupe d'instances dans un cluster en cours d'exécution.

1. Créez d'abord un fichier de configuration `configurations.json` qui configure Flink pour utiliser Java 11. Dans l'exemple suivant, remplacez *ig-1xxxxxxx9* par l'ID du groupe d'instances que vous souhaitez reconfigurer. Enregistrez le fichier dans le même répertoire que celui où vous exécuterez la commande `modify-instance-groups`.

   ```
   [
      {
         "InstanceGroupId":"ig-1xxxxxxx9",
         "Configurations":[
            {
               "Classification":"flink-conf",
               "Properties":{
                 "containerized.taskmanager.env.JAVA_HOME":"/usr/lib/jvm/jre-11",
                 "containerized.master.env.JAVA_HOME":"/usr/lib/jvm/jre-11",
                 "env.java.home":"/usr/lib/jvm/jre-11"
               },
               "Configurations":[]
            }
         ]
      }
   ]
   ```

1. À partir de AWS CLI, exécutez la commande suivante. Remplacez l'ID du groupe d'instances que vous souhaitez reconfigurer :

   ```
   aws emr modify-instance-groups --cluster-id j-2AL4XXXXXX5T9 \
   --instance-groups file://configurations.json
   ```

------

### Confirmez le runtime Java pour Flink sur un cluster en cours d'exécution
<a name="flink-configure-java11-confirm"></a>

Pour déterminer l'environnement d'exécution Java d'un cluster en cours d'exécution, connectez-vous au nœud primaire avec SSH, comme décrit dans [Connexion au nœud primaire avec SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html). Ensuite, exécutez la commande suivante :

```
ps -ef | grep flink
```

La commande `ps` associée à l'option `-ef` répertorie tous les processus en cours d'exécution sur le système. Vous pouvez filtrer cette sortie avec `grep` pour trouver les mentions de la chaîne `flink`. Vérifiez le résultat pour la valeur de l'environnement d'exécution Java (JRE), `jre-XX`. Dans le résultat suivant, `jre-11` indique que Java 11 est activé lors de l'exécution de Flink.

```
flink    19130     1  0 09:17 ?        00:00:15 /usr/lib/jvm/jre-11/bin/java -Djava.io.tmpdir=/mnt/tmp -Dlog.file=/usr/lib/flink/log/flink-flink-historyserver-0-ip-172-31-32-127.log -Dlog4j.configuration=file:/usr/lib/flink/conf/log4j.properties -Dlog4j.configurationFile=file:/usr/lib/flink/conf/log4j.properties -Dlogback.configurationFile=file:/usr/lib/flink/conf/logback.xml -classpath /usr/lib/flink/lib/flink-cep-1.17.0.jar:/usr/lib/flink/lib/flink-connector-files-1.17.0.jar:/usr/lib/flink/lib/flink-csv-1.17.0.jar:/usr/lib/flink/lib/flink-json-1.17.0.jar:/usr/lib/flink/lib/flink-scala_2.12-1.17.0.jar:/usr/lib/flink/lib/flink-table-api-java-uber-1.17.0.jar:/usr/lib/flink/lib/flink-table-api-scala-bridge_2.12-1.17.0.
```

Vous pouvez également [vous connecter au nœud primaire avec SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) et démarrer une session Flink YARN avec une commande `flink-yarn-session -d`. La sortie montre la machine virtuelle Java (JVM) pour Flink, `java-11-amazon-corretto` dans l'exemple suivant :

```
2023-05-29 10:38:14,129 INFO  org.apache.flink.configuration.GlobalConfiguration           [] - Loading configuration property: containerized.master.env.JAVA_HOME, /usr/lib/jvm/java-11-amazon-corretto.x86_64
```

# Utilisation des tâches Flink dans Amazon EMR
<a name="flink-jobs"></a>

Il existe plusieurs manières d'interagir avec Flink sur Amazon EMR : via la console, via l'interface Flink située dans l'interface utilisateur de suivi et via ResourceManager la ligne de commande. Vous pouvez envoyer un fichier JAR à une application Flink avec n'importe lequel de ces outils. Une fois soumis un fichier JAR, il devient une tâche gérée par le Flink JobManager. JobManager Il se trouve sur le nœud YARN qui héberge le daemon Application Master de la session Flink.

Vous pouvez exécuter une application Flink en tant que tâche YARN sur un cluster à exécution longue ou sur un cluster transitoire. Sur un cluster à exécution longue, vous pouvez soumettre plusieurs tâches Flink à un cluster Flink s'exécutant sur Amazon EMR. Si vous exécutez une tâche Flink sur un cluster transitoire, votre cluster Amazon EMR n'existe que le temps de l'exécution de l'application Flink, et vous n'êtes donc facturé que pour les ressources et le temps utilisés. Vous pouvez soumettre une tâche Flink avec l'opération d'API Amazon `AddSteps` EMR, en tant qu'argument d'étape de `RunJobFlow` l'opération et via AWS CLI `add-steps` les `create-cluster` commandes or.

## Démarrez une application Flink YARN en tant qu'étape sur un cluster de longue durée
<a name="flink-add-step"></a>

Pour démarrer une application Flink à laquelle plusieurs clients peuvent soumettre du travail via les opérations de l'API YARN, vous devez soit créer un cluster, soit ajouter une application Flink à un cluster existant. Pour obtenir des instructions sur la création d'un cluster, veuillez consulter [Création d'un cluster avec Flink](flink-create-cluster.md). Pour démarrer une session YARN sur un cluster existant, procédez comme suit à partir de la console, de l' AWS CLI ou du kit SDK Java.

**Note**  
La commande `flink-yarn-session` a été ajoutée dans la version 5.5.0 d'Amazon EMR comme habillage pour le script `yarn-session.sh`, afin de simplifier l'exécution. Si vous utilisez une version antérieure d'Amazon EMR, remplacez `bash -c "/usr/lib/flink/bin/yarn-session.sh -d"` par **Arguments** dans la console ou par `Args`. dans la commande AWS CLI .

**Pour soumettre une tâche Flink sur un cluster existant depuis la console**

Soumettez la session Flink avec la commande `flink-yarn-session` dans un cluster existant.

1. [Ouvrez la console Amazon EMR à l'adresse /emr. https://console.aws.amazon.com](https://console.aws.amazon.com/emr/)

1. Dans la liste des clusters, sélectionnez celui que vous avez lancé précédemment.

1. Dans la page des détails de cluster, sélectionnez **Steps (Étapes)**, **Add Step (Ajouter une étape)**.

1. Utilisez les directives suivantes pour saisir les paramètres, puis sélectionnez **Ajouter**.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/flink-jobs.html)

**Pour soumettre une tâche Flink sur un cluster existant à l'aide du AWS CLI**
+ Utilisez la commande `add-steps` pour ajouter une tâche Flink à un cluster de longue durée. L'exemple de commande suivant indique `Args="flink-yarn-session", "-d"` pour démarrer une session Flink au sein de votre cluster YARN dans un état détaché (`-d`). Consultez [Configuration de YARN](https://ci.apache.org/projects/flink/flink-docs-release-1.3/setup/yarn_setup.html#flink-yarn-session) dans la dernière documentation Flink pour plus de détails sur les arguments.

  ```
  aws emr add-steps --cluster-id <j-XXXXXXXX> --steps Type=CUSTOM_JAR,Name=<example-flink-step-name>,Jar=command-runner.jar,Args="flink-yarn-session","-d"
  ```

## Soumettre du travail à une application Flink existante sur un cluster de longue durée
<a name="flink-submit-work"></a>

Si vous possédez déjà une application Flink sur un cluster de longue durée, vous pouvez spécifier l'ID de l'application Flink du cluster afin d'y soumettre du travail. Pour obtenir l'ID de l'application, `yarn application -list` exécutez l'opération [YarnClient](https://hadoop.apache.org/docs/current/api/org/apache/hadoop/yarn/client/api/YarnClient.html)API AWS CLI ou via l'API :

```
$ yarn application -list
16/09/07 19:32:13 INFO client.RMProxy: Connecting to ResourceManager at ip-10-181-83-19.ec2.internal/10.181.83.19:8032
Total number of applications (application-types: [] and states: [SUBMITTED, ACCEPTED, RUNNING]):1
Application-Id    Application-Name    Application-Type    User    Queue    State    Final-State    Progress    Tracking-URL
application_1473169569237_0002    Flink session with 14 TaskManagers (detached)	        Apache Flink	    hadoop	   default	           RUNNING	         UNDEFINED	           100%	http://ip-10-136-154-194.ec2.internal:33089
```

L'identifiant de l'application pour cette session Flink est`application_1473169569237_0002`, que vous pouvez utiliser pour soumettre du travail à l'application à partir du SDK AWS CLI ou d'un SDK.

**Example SDK pour Java**  

```
List<StepConfig> stepConfigs = new ArrayList<StepConfig>();
  
HadoopJarStepConfig flinkWordCountConf = new HadoopJarStepConfig()
    .withJar("command-runner.jar")
    .withArgs("flink", "run", "-m", "yarn-cluster", "-yid", "application_1473169569237_0002", "-yn", "2", "/usr/lib/flink/examples/streaming/WordCount.jar", 
      "--input", "s3://amzn-s3-demo-bucket/pg11.txt", "--output", "s3://amzn-s3-demo-bucket/alice2/");
  
StepConfig flinkRunWordCount = new StepConfig()
  .withName("Flink add a wordcount step")
  .withActionOnFailure("CONTINUE")
  .withHadoopJarStep(flinkWordCountConf);
  
stepConfigs.add(flinkRunWordCount); 
  
AddJobFlowStepsResult res = emr.addJobFlowSteps(new AddJobFlowStepsRequest()
   .withJobFlowId("myClusterId")
   .withSteps(stepConfigs));
```

**Example AWS CLI**  

```
aws emr add-steps --cluster-id <j-XXXXXXXX> \
--steps Type=CUSTOM_JAR,Name=Flink_Submit_To_Long_Running,Jar=command-runner.jar,\
Args="flink","run","-m","yarn-cluster","-yid","application_1473169569237_0002",\
"/usr/lib/flink/examples/streaming/WordCount.jar",\
"--input","s3://amzn-s3-demo-bucket/pg11.txt","--output","s3://amzn-s3-demo-bucket/alice2/" \
--region <region-code>
```

## Soumission d'une tâche Flink transitoire
<a name="flink-transient-job"></a>

Les exemples suivants lancent un cluster transitoire qui exécute une tâche Flink, puis la résilie à son terme.

**Example SDK pour Java**  

```
import java.util.ArrayList;
import java.util.List;
import com.amazonaws.AmazonClientException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
import com.amazonaws.services.elasticmapreduce.model.*;

public class Main_test {

	public static void main(String[] args) {
		AWSCredentials credentials_profile = null;
		try {
			credentials_profile = new ProfileCredentialsProvider("default").getCredentials();
		} catch (Exception e) {
			throw new AmazonClientException(
					"Cannot load credentials from .aws/credentials file. " +
							"Make sure that the credentials file exists and the profile name is specified within it.",
					e);
		}

		AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard()
				.withCredentials(new AWSStaticCredentialsProvider(credentials_profile))
				.withRegion(Regions.US_WEST_1)
				.build();

		List<StepConfig> stepConfigs = new ArrayList<StepConfig>();
		HadoopJarStepConfig flinkWordCountConf = new HadoopJarStepConfig()
				.withJar("command-runner.jar")
				.withArgs("bash", "-c", "flink", "run", "-m", "yarn-cluster", "-yn", "2",
						"/usr/lib/flink/examples/streaming/WordCount.jar", "--input", "s3://path/to/input-file.txt", "--output",
						"s3://path/to/output/");

		StepConfig flinkRunWordCountStep = new StepConfig()
				.withName("Flink add a wordcount step and terminate")
				.withActionOnFailure("CONTINUE")
				.withHadoopJarStep(flinkWordCountConf);

		stepConfigs.add(flinkRunWordCountStep);

		Application flink = new Application().withName("Flink");

		RunJobFlowRequest request = new RunJobFlowRequest()
				.withName("flink-transient")
				.withReleaseLabel("emr-5.20.0")
				.withApplications(flink)
				.withServiceRole("EMR_DefaultRole")
				.withJobFlowRole("EMR_EC2_DefaultRole")
				.withLogUri("s3://path/to/my/logfiles")
				.withInstances(new JobFlowInstancesConfig()
						.withEc2KeyName("myEc2Key")
						.withEc2SubnetId("subnet-12ab3c45")
						.withInstanceCount(3)
						.withKeepJobFlowAliveWhenNoSteps(false)
						.withMasterInstanceType("m4.large")
						.withSlaveInstanceType("m4.large"))
				.withSteps(stepConfigs);

		RunJobFlowResult result = emr.runJobFlow(request);
		System.out.println("The cluster ID is " + result.toString());

	}

}
```

**Example AWS CLI**  
Utilisez la sous-commande `create-cluster` pour créer un cluster transitoire qui se termine quand la tâche Flink est terminée :  

```
aws emr create-cluster --release-label emr-5.2.1 \
--name "Flink_Transient" \
--applications Name=Flink \
--configurations file://./configurations.json \
--region us-east-1 \
--log-uri s3://myLogUri \
--auto-terminate
--instance-type m5.xlarge \
--instance-count 2 \
--service-role EMR_DefaultRole_V2 \ 
--ec2-attributes KeyName=<YourKeyName>,InstanceProfile=EMR_EC2_DefaultRole \
--steps Type=CUSTOM_JAR,Jar=command-runner.jar,Name=Flink_Long_Running_Session,\
Args="bash","-c","\"flink run -m yarn-cluster /usr/lib/flink/examples/streaming/WordCount.jar
--input s3://amzn-s3-demo-bucket/pg11.txt --output s3://amzn-s3-demo-bucket/alice/""
```

# Utilisation du shell Scala
<a name="flink-scala"></a>

Le shell Scala Flink pour les clusters EMR n'est configuré que pour démarrer de nouvelles sessions de YARN. Vous pouvez utiliser le shell Scala en suivant la procédure ci-dessous.

**Utilisation du shell Flink Scala sur le nœud primaire**

1. Connectez-vous au nœud primaire avec SSH comme décrit dans [Connexion au nœud primaire avec SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html).

1. Tapez ce qui suit pour démarrer un shell :

   Dans Amazon EMR version 5.5.0 et versions ultérieures, vous pouvez utiliser la commande suivante pour démarrer un cluster Yarn pour le Scala Shell avec un. TaskManager

   ```
   % flink-scala-shell yarn 1
   ```

   Dans les versions antérieures d'Amazon EMR, utilisez :

   ```
   % /usr/lib/flink/bin/start-scala-shell.sh yarn 1
   ```

   Cela démarre le shell Scala Flink pour que vous puissiez utiliser Flink de façon interactive. Tout comme avec les autres interfaces et options, vous pouvez faire évoluer la valeur de l'option `-n` utilisée dans l'exemple basé sur le nombre de tâches à exécuter à partir du shell.

   Pour plus d'informations, consultez [Scala REPL](https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/scala_shell.html) dans la documentation officielle d'Apache Flink.

# Recherche de l'interface web Flink
<a name="flink-web-interface"></a>

Le maître d'application qui appartient à l'application Flink héberge l'interface Web de Flink. Il s'agit d'une autre méthode pour soumettre un fichier JAR en tant que tâche ou pour afficher le statut actuel d'autres tâches. L'interface Web Flink est active tant qu'une session Flink est en cours d'exécution. Si une tâche YARN de longue date est déjà active, vous pouvez suivre les instructions de la rubrique [Connexion au nœud principal avec SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) du *guide de gestion Amazon EMR* pour vous connecter au YARN. ResourceManager Par exemple, si vous avez configuré un tunnel SSH et que vous avez activé un proxy dans votre navigateur, vous choisissez la ResourceManager connexion sous **Connexions** sur la page de détails de votre cluster EMR.

![\[Resource Manager link under Connections section in cluster details page.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/resourcemanager.png)


Une fois que vous avez trouvé le ResourceManager, sélectionnez l'application YARN qui héberge une session Flink. Cliquez sur le lien sous la colonne **Tracking UI (UI de suivi)**. 

![\[Application details table showing a running Apache Flink session with ApplicationMaster link.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/resourcemanager2.png)


Dans l'interface Web Flink, vous pouvez afficher la configuration, soumettre votre propre JAR personnalisé comme une tâche, ou contrôler les travaux en cours. 

![\[Apache Flink Dashboard overview showing task managers, slots, and job statistics.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/flink.png)


# Outil de mise à l’échelle automatique Flink
<a name="flink-autoscaler"></a>

## Présentation de
<a name="flink-autoscaler-overview"></a>

La version 6.15.0 et les versions ultérieures d’Amazon EMR prennent en charge l’*outil de mise à l’échelle automatique Flink*. La fonctionnalité de mise à l’échelle automatique des tâches collecte les métriques issues de l’exécution des tâches de streaming Flink et met à l’échelle automatiquement les vertex de chaque tâche. Cela réduit la contre-pression et répond à l’objectif d’utilisation que vous avez défini.

Pour plus d’informations, voir la rubrique [Outil de mise à l’échelle automatique](https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main/docs/custom-resource/autoscaler/) de la documentation de l’*opérateur Apache Flink Kubernetes*.

## Considérations
<a name="flink-autoscaler-considerations"></a>
+ La version 6.15.0 et les versions ultérieures d’Amazon EMR prennent en charge l’outil de mise à l’échelle automatique Flink.
+ L’outil de mise à l’échelle automatique Flink est pris en charge uniquement pour les tâches de streaming.
+ Seul le planificateur adaptatif est pris en charge. Le planificateur par défaut n’est pas pris en charge.
+ Nous recommandons d’activer la mise à l’échelle de cluster pour permettre une mise à disposition de ressources dynamique. La mise à l’échelle gérée par Amazon EMR est préférable, car les métriques sont évaluées toutes les 5 à 10 secondes. À cet intervalle, votre cluster peut s’adapter plus facilement à l’évolution des ressources de cluster requises.

## Activation de l’outil de mise à l’échelle automatique
<a name="flink-autoscaler-start"></a>

Pour activer l’outil de mise à l’échelle automatique Flink lorsque vous créez un cluster Amazon EMR sur EC2, procédez comme suit.

1. Créez un cluster EMR depuis la console Amazon EMR :

   1. Choisissez Amazon EMR version `emr-6.15.0` ou ultérieure. Sélectionnez l’offre d’applications **Flink**, puis toutes les autres applications que vous souhaitez inclure dans votre cluster.  
![\[Application bundle options for Amazon EMRcluster, with Flink highlighted and selected.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/emr-flink-cluster-create.png)

   1. Dans **Mise à l’échelle et provisionnement du cluster**, sélectionnez l’option **Utiliser la mise à l’échelle gérée par EMR**.  
![\[Cluster scaling options: manual, EMR-managed (selected), or custom automatic scaling.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/emr-flink-cluster-managedscaling.png)

1. Dans la section **Paramètres du logiciel**, entrez la configuration suivante pour activer l’outil de mise à l’échelle automatique Flink. Pour les scénarios de test, définissez l’intervalle de décision, l’intervalle entre les fenêtres de mesures et l’intervalle de stabilisation sur une valeur inférieure afin que la tâche prenne immédiatement une décision de mise à l’échelle et faciliter ainsi la vérification.

   ```
   [
     {
       "Classification": "flink-conf",
       "Properties": {
         "job.autoscaler.enabled": "true",
         "jobmanager.scheduler": "adaptive",
         "job.autoscaler.stabilization.interval": "60s",
         "job.autoscaler.metrics.window": "60s",
         "job.autoscaler.decision.interval": "10s",
         "job.autoscaler.debug.logs.interval": "60s"
       }
     }
   ]
   ```

1. Sélectionnez ou configurez les autres paramètres selon vos préférences, puis créez le cluster compatible avec l’outil de mise à l’échelle automatique Flink.

## Configurations de l’outil de mise à l’échelle automatique
<a name="flink-autoscaler-config"></a>

Cette section aborde la plupart des configurations personnalisables.

**Note**  
Avec des configurations temporelles telles que les paramètres `time`, `interval` et `window`, l’unité par défaut lorsqu’aucune unité n’est spécifiée est la milliseconde. Une valeur de `30` sans suffixe est donc égale à 30 millisecondes. Pour les autres unités de temps, incluez le suffixe approprié `s` pour les *secondes*, `m` pour les *minutes* ou `h` pour les *heures*.

**Topics**
+ [Configurations de boucle](#flink-autoscaler-config-loop)
+ [Configurations des métriques et de l’historique](#flink-autoscaler-config-metrics)
+ [Configurations des vertex](#flink-autoscaler-config-vertex)
+ [Configurations du backlog](#flink-autoscaler-config-backlog)
+ [Configurations des opérations de mise à l’échelle](#flink-autoscaler-config-scale)

### Configurations de boucle de l’outil de mise à l’échelle automatique
<a name="flink-autoscaler-config-loop"></a>

L’outil de mise à l’échelle automatique récupère les métriques au niveau des vertex de la tâche pour chaque intervalle de temps configurable, les convertit en variables d’échelle, estime le parallélisme des nouveaux vertex de la tâche et le recommande au planificateur de tâches. Les métriques ne sont collectées qu’à l’issue du redémarrage de la tâche et de l’intervalle de stabilisation du cluster.


| Clé de configuration | Valeur par défaut | Description | Exemples de valeur | 
| --- | --- | --- | --- | 
| job.autoscaler.enabled | false | Activez la mise à l’échelle automatique sur votre cluster Flink. | true, false | 
| job.autoscaler.decision.interval | 60s | Intervalle de décision de l’outil de mise à l’échelle automatique. | 30 (l’unité par défaut est la milliseconde), 5m, 1h | 
| job.autoscaler.restart.time | 3m | Temps de redémarrage prévu à utiliser jusqu’à ce que l’opérateur puisse le déterminer de manière fiable à partir de l’historique. | 30 (l’unité par défaut est la milliseconde), 5m, 1h | 
| job.autoscaler.stabilization.interval | 300s | Période de stabilisation au cours de laquelle aucune nouvelle mise à l’échelle ne sera exécutée. | 30 (l’unité par défaut est la milliseconde), 5m, 1h | 
| job.autoscaler.debug.logs.interval | 300s | Intervalle entre les journaux de débogage de l’outil de mise à l’échelle automatique. | 30 (l’unité par défaut est la milliseconde), 5m, 1h | 

### Agrégation des métriques et configurations de l’historique
<a name="flink-autoscaler-config-metrics"></a>

L’outil de mise à l’échelle automatique récupère les métriques et les agrège sur une fenêtre temporelle coulissante. Les métriques sont alors évaluées dans le cadre de décisions de mise à l’échelle. L’historique des décisions de mise à l’échelle pour chaque vertex de tâche sert à estimer le nouveau parallélisme. Les métriques présentent une date d’expiration basée sur l’ancienneté et une taille d’historique (1 au minimum).


| Clé de configuration | Valeur par défaut | Description | Exemples de valeur | 
| --- | --- | --- | --- | 
| job.autoscaler.metrics.window | 600s | Scaling metrics aggregation window size. | 30 (l’unité par défaut est la milliseconde), 5m, 1h | 
| job.autoscaler.history.max.count | 3 | Nombre maximal de décisions de mise à l’échelle passées à conserver par vertex. | 1 sur Integer.MAX\$1VALUE | 
| job.autoscaler.history.max.age | 24h | Nombre minimal de décisions de mise à l’échelle passées à conserver par vertex. | 30 (l’unité par défaut est la milliseconde), 5m, 1h | 

### Configurations au niveau des vertex de tâche
<a name="flink-autoscaler-config-vertex"></a>

Le parallélisme de chaque vertex de tâche est modifié en fonction de l’utilisation de la cible et est limité par les limites minimale et maximale de parallélisme. Nous vous déconseillons de définir une cible d’utilisation proche de 100 % (c’est-à-dire une valeur de 1). La limite d’utilisation joue le rôle de tampon pour gérer les fluctuations de charge intermédiaires.


| Clé de configuration | Valeur par défaut | Description | Exemples de valeur | 
| --- | --- | --- | --- | 
| job.autoscaler.target.utilization | 0.7 | Utilisation des vertex cibles. | 0 - 1 | 
| job.autoscaler.target.utilization.boundary | 0.4 | Limite d’utilisation des vertex cibles. La mise à l’échelle ne sera pas effectuée si le taux de traitement actuel est compris entre [target\$1rate / (target\$1utilization - boundary) et (target\$1rate / (target\$1utilization \$1 boundary)]. | 0 - 1 | 
| job.autoscaler.vertex.min-parallelism | 1 | Parallélisme minimal que l’outil de mise à l’échelle automatique peut utiliser. | 0 - 200 | 
| job.autoscaler.vertex.max-parallelism | 200 | Parallélisme maximal que l’outil de mise à l’échelle automatique peut utiliser. Notez que l’outil de mise à l’échelle automatique ignore cette limite si elle est supérieure au parallélisme maximal configuré dans la configuration Flink ou directement sur chaque opérateur. | 0 - 200 | 

### Configurations de traitement du backlog
<a name="flink-autoscaler-config-backlog"></a>

Le vertex de la tâche requiert des ressources supplémentaires pour gérer les événements en attente, ou backlogs, qui s’accumulent pendant le délai de mise à l’échelle. C’est ce que l’on appelle également la durée de `catch-up`. Si le délai de traitement du backlog dépasse la `lag -threshold` valeur configurée, l’utilisation cible du vertex de la tâche augmente jusqu’au niveau maximum. Cela permet d’éviter les opérations de mise à l’échelle inutiles pendant le traitement du backlog.


| Clé de configuration | Valeur par défaut | Description | Exemples de valeur | 
| --- | --- | --- | --- | 
| job.autoscaler.backlog-processing.lag-threshold | 5m | Seuil de retard qui évitera les mises à l’échelle inutiles tout en supprimant les messages en attente responsables du retard. | 30 (l’unité par défaut est la milliseconde), 5m, 1h | 
| job.autoscaler.catch-up.duration | 15m | Durée cible pour le traitement complet de tout backlog après une opération de mise à l’échelle. Définissez cette valeur sur 0 pour désactiver la mise à l’échelle basée sur le backlog. | 30 (l’unité par défaut est la milliseconde), 5m, 1h | 

### Configurations des opérations de mise à l’échelle
<a name="flink-autoscaler-config-scale"></a>

Aucune opération de réduction n’est effectuée par l’outil de mise à l’échelle automatique immédiatement après une opération de mise à l’échelle pendant le délai de grâce. Cela permet d'éviter les cycles inutiles d' up-down-up-downopérations de balance provoqués par des fluctuations de charge temporaires. 

Nous pouvons utiliser le ratio de réduction d’échelle pour réduire progressivement le parallélisme et libérer des ressources pour faire face à des pics de charge temporaires. Cela permet également d’éviter des opérations d’augmentation d’échelle mineures et inutiles après une opération de réduction majeure. 

Nous pouvons détecter une opération de mise à l’échelle inefficace sur la base de l’historique des décisions d’augmentation d’échelle des vertex de tâches passées afin d’empêcher toute nouvelle modification du parallélisme.


| Clé de configuration | Valeur par défaut | Description | Exemples de valeur | 
| --- | --- | --- | --- | 
| job.autoscaler.scale-up.grace-period | 1h | Durée pendant laquelle aucune réduction d’échelle d’un vertex n’est autorisée après l’augmentation d’échelle de ce vertex. | 30 (l’unité par défaut est la milliseconde), 5m, 1h | 
| job.autoscaler.scale-down.max-factor | 0.6 | Facteur maximal de réduction d’échelle. Une valeur égale à 1 signifie qu’aucune limite de réduction d’échelle n’est définie ; 0.6 indique que seule une réduction d’échelle de 60  % du parallélisme d’origine peut être appliquée à la tâche. | 0 - 1 | 
| job.autoscaler.scale-up.max-factor | 100000. | Ratio maximal d’augmentation d’échelle. Une valeur de 2.0 signifie que seule une augmentation d’échelle de 200 % du parallélisme actuel peut être appliquée à la tâche. | 0 - Integer.MAX\$1VALUE | 
| job.autoscaler.scaling.effectiveness.detection.enabled | false | Permet d’activer la détection des opérations de mise à l’échelle inefficaces et d’autoriser le blocage de nouvelles mises à l’échelle par l’outil de mise à l’échelle automatique. | true, false | 

# Optimisation des temps de redémarrage pour les opérations de récupération et de mise à l’échelle de tâches
<a name="flink-restart"></a>

Lorsqu’une tâche échoue ou qu’une opération de mise à l’échelle est en cours, Flink tente de réexécuter la tâche à partir du dernier point de contrôle terminé. L’exécution du processus de redémarrage peut durer une minute ou plus, en fonction de la taille de l’état du point de contrôle et du nombre de tâches parallèles. Pendant la période de redémarrage, les tâches en attente peuvent s’accumuler pour la tâche. Flink peut cependant permettre d’optimiser la vitesse de récupération et de redémarrage des graphes d’exécution afin d’améliorer la stabilité des tâches.

Cette page décrit comment Amazon EMR Flink peut améliorer le temps de redémarrage des tâches lors des opérations de récupération ou de mise à l’échelle de tâches.

**Topics**
+ [Récupération locale des tâches](#flink-restart-task-local)
+ [Point de contrôle incrémentiel générique basé sur les journaux](#flink-restart-log-check)
+ [Récupération précise](#flink-restart-fine-grained)
+ [Mécanisme de redémarrage combiné dans le planificateur adaptatif](#flink-restart-combined)

## Récupération locale des tâches
<a name="flink-restart-task-local"></a>

**Note**  
La récupération locale des tâches est prise en charge avec Amazon EMR 6.0.0 et versions ultérieures.

Avec les points de contrôle Flink, chaque tâche crée un instantané de son état, que Flink écrit sur un système de stockage distribué tel qu’Amazon S3. En cas de récupération, les tâches restaurent leur état à partir du stockage distribué. Le stockage distribué offre une tolérance aux pannes et peut redistribuer l’état lors de la mise à l’échelle, car tous les nœuds peuvent y accéder.

Cependant, un magasin distribué à distance présente également un inconvénient : toutes les tâches doivent lire leur état depuis un emplacement distant sur le réseau, ce qui peut entraîner l’augmentation du temps de récupération pour les états importants lors des opérations de récupération ou de mise à l’échelle de tâches.

La *récupération locale des tâches* permet de résoudre ce problème. Les tâches enregistrent leur état au point de contrôle sur un stockage secondaire local à la tâche, par exemple sur un disque local. Elles stockent également leur état sur le stockage principal, à savoir Amazon S3 dans notre cas. Pendant la récupération, le planificateur planifie les tâches sur le même Task Manager que celui dans lequel les tâches ont été exécutées précédemment afin qu’elles puissent être récupérées depuis le magasin d’état local au lieu de lire depuis le magasin d’état distant. Pour plus d’informations, voir la rubrique [Récupération locale des tâches](https://nightlies.apache.org/flink/flink-docs-master/docs/ops/state/large_state_tuning/#task-local-recovery) de la *documentation Apache Flink*.

Nos tests d’évaluation avec des exemples de tâches ont montré que le temps de récupération était passé de quelques minutes à quelques secondes grâce à l’activation de la récupération locale des tâches.

Pour activer la récupération locale des tâches, définissez les configurations suivantes dans votre fichier `flink-conf.yaml`. Spécifiez la valeur de l’intervalle de point de contrôle en millisecondes.

```
    state.backend.local-recovery: true
    state.backend: hasmap or rocksdb
    state.checkpoints.dir: s3://storage-location-bucket-path/checkpoint
    execution.checkpointing.interval: 15000
```

## Point de contrôle incrémentiel générique basé sur les journaux
<a name="flink-restart-log-check"></a>

**Note**  
Le point de contrôle incrémentiel générique basé sur les journaux est pris en charge avec Amazon EMR 6.10.0 et versions ultérieures.

Le point de contrôle incrémentiel générique basé sur les journaux a été ajouté dans Flink 1.16 pour accélérer les points de contrôle. Un intervalle de point de contrôle plus court entraîne souvent une réduction du travail de récupération, car moins d’événements doivent être traités de nouveau après la récupération. Pour plus d’informations, accédez à la page [Improving speed and stability of checkpointing with generic log-based incremental checkpoints](https://flink.apache.org/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/) sur le *blog Apache Flink*.

Sur base de quelques exemples de tâches, nos tests d’évaluation ont montré que le temps de contrôle était passé de quelques minutes à quelques secondes grâce au point de contrôle incrémentiel générique basé sur les journaux.

Pour activer les points de contrôle incrémentiels génériques basés sur les journaux, définissez les configurations suivantes dans votre fichier `flink-conf.yaml`. Spécifiez la valeur de l’intervalle de point de contrôle en millisecondes.

```
    state.backend.changelog.enabled: true 
    state.backend.changelog.storage: filesystem
    dstl.dfs.base-path: s3://bucket-path/changelog
    state.backend.local-recovery: true
    state.backend: rocksdb
    state.checkpoints.dir: s3://bucket-path/checkpoint
    execution.checkpointing.interval: 15000
```

## Récupération précise
<a name="flink-restart-fine-grained"></a>

**Note**  
La prise en charge de la récupération précise pour le planificateur par défaut est disponible avec Amazon EMR 6.0.0 et versions ultérieures. La prise en charge de la récupération précise pour le planificateur adaptatif est disponible avec Amazon EMR 6.15.0 et versions ultérieures.

Lorsqu’une tâche échoue pendant son exécution, Flink réinitialise l’intégralité du graphe d’exécution et déclenche une réexécution complète à partir du dernier point de contrôle terminé. Cette opération est plus chère qu’une simple réexécution des tâches qui ont échoué. La récupération précise redémarre uniquement le composant connecté au pipeline de la tâche ayant échoué. Dans l’exemple suivant, le graphe de tâches présente 5 sommets (`A` à `E`). Toutes les connexions entre les sommets sont en pipeline avec une distribution ponctuelle, et la valeur de `parallelism.default` pour la tâche est définie sur `2`. 

```
A → B → C → D → E
```

Dans cet exemple, 10 tâches sont en cours d’exécution au total. Le premier pipeline (`a1` à `e1`) s’exécute sur un TaskManager (`TM1`), et le deuxième pipeline (`a2` à `e2`) s’exécute sur un autre TaskManager (`TM2`).

```
a1 → b1 → c1 → d1 → e1
a2 → b2 → c2 → d2 → e2
```

Deux composants sont connectés en pipeline : `a1 → e1` et `a2 → e2`. En cas d’échec de `TM1` ou de `TM2`, l’échec affecte uniquement les 5 tâches du pipeline dans lequel TaskManager était en cours d’exécution. La stratégie de redémarrage démarre uniquement le composant en pipeline concerné. 

La récupération précise ne fonctionne qu’avec des tâches Flink parfaitement parallèles. Elle n’est pas prise en charge par `keyBy()` ou par les opérations `redistribute()`. Pour plus d’informations, accédez à la page [FLIP-1 : Fine Grained Recovery from Task Failures](https://cwiki.apache.org/confluence/display/FLINK/FLIP-1%3A+Fine+Grained+Recovery+from+Task+Failures) du projet Jira *Flink Improvement Proposal*.

Pour activer la récupération précise, définissez les configurations suivantes dans votre fichier `flink-conf.yaml`.

```
jobmanager.execution.failover-strategy: region 
restart-strategy: exponential-delay or fixed-delay
```

## Mécanisme de redémarrage combiné dans le planificateur adaptatif
<a name="flink-restart-combined"></a>

**Note**  
Le mécanisme de redémarrage combiné du planificateur adaptatif est pris en charge par Amazon EMR 6.15.0 et versions ultérieures.

Le planificateur adaptatif peut ajuster le parallélisme de la tâche en fonction des emplacements disponibles. Si le nombre d’emplacements disponibles est insuffisant, le planificateur réduit automatiquement le parallélisme pour s’adapter au parallélisme des tâches configuré. Si de nouveaux emplacements sont disponibles, la tâche fait l’objet d’une augmentation d’échelle selon le parallélisme des tâches configuré. Un planificateur adaptatif permet d’éviter les temps d’arrêt de la tâche lorsque les ressources disponibles sont insuffisantes. Il s’agit du planificateur pris en charge par l’outil de mise à l’échelle automatique Flink. Nous recommandons donc l’utilisation d’un planificateur adaptatif avec Amazon EMR Flink. Les planificateurs adaptatifs peuvent toutefois effectuer plusieurs redémarrages en peu de temps, à raison d’un redémarrage pour chaque nouvelle ressource ajoutée, ce qui peut entraîner une baisse des performances de la tâche.

Avec Amazon EMR 6.15.0 et versions ultérieures, Flink dispose d’un mécanisme de redémarrage combiné dans le planificateur adaptatif qui ouvre une fenêtre de redémarrage lorsque la première ressource est ajoutée, puis attend l’intervalle de fenêtre configuré de 1 minute par défaut. Un seul redémarrage est effectué lorsque les ressources disponibles sont suffisantes pour exécuter la tâche avec un parallélisme configuré ou lorsque l’intervalle expire.

Grâce à quelques exemples de tâches, nos tests d’évaluation ont montré que cette fonctionnalité traite 10 % d’enregistrements supplémentaires par rapport au comportement par défaut lorsque vous utilisez le planificateur adaptatif et l’outil de mise à l’échelle automatique Flink.

Pour activer le mécanisme de redémarrage combiné, définissez les configurations suivantes dans votre fichier `flink-conf.yaml`.

```
jobmanager.adaptive-scheduler.combined-restart.enabled: true 
jobmanager.adaptive-scheduler.combined-restart.window-interval: 1m
```

# Travailler avec les jobs Flink de Zeppelin dans Amazon EMR
<a name="flink-zeppelin"></a>

## Introduction
<a name="flink-zeppelin-intro"></a>

Les versions 6.10.0 et supérieures d'Amazon EMR prennent en charge l'intégration [Apache Zeppelin](emr-zeppelin.md) avec Apache Flink. Vous pouvez soumettre des jobs Flink de manière interactive via les blocs-notes Zeppelin. Avec l'interpréteur Flink, vous pouvez exécuter des requêtes Flink, définir des tâches de streaming et de traitement par lots Flink, et visualiser le résultat dans les blocs-notes Zeppelin. L'interpréteur Flink est basé sur Flink REST API. Cela vous permet d'accéder aux tâches Flink et de les manipuler depuis l'environnement Zeppelin pour effectuer un traitement et une analyse des données en temps réel.

Il existe quatre sous-interprètes dans Flink Interpreter. Ils ont des objectifs différents, mais ils se trouvent tous dans la JVM et partagent les mêmes points d'entrée préconfigurés vers Flink (`ExecutionEnviroment`, `StreamExecutionEnvironment`, `BatchTableEnvironment`, `StreamTableEnvironment`). Les interprètes sont les suivants :
+ `%flink` – Crée `ExecutionEnvironment`, `StreamExecutionEnvironment`, `BatchTableEnvironment`, `StreamTableEnvironment`, et fournit un environnement Scala
+ `%flink.pyflink` – Fournit un environnement Python
+ `%flink.ssql` – Fournit un environnement SQL de streaming
+ `%flink.bsql` – Fournit un environnement SQL par lots

## Conditions préalables
<a name="flink-zeppelin-prerequisites"></a>
+ L'intégration de Zeppelin à Flink est prise en charge pour les clusters créés avec Amazon EMR 6.10.0 et versions ultérieures.
+ Pour afficher les interfaces Web hébergées sur des clusters EMR conformément à ces étapes, vous devez configurer un tunnel SSH pour autoriser l'accès entrant. Pour plus d'informations, consultez la rubrique [Configuration des paramètres de proxy pour afficher les sites web hébergés sur le nœud primaire](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-proxy.html).

## Configurer Zeppelin-Flink sur un cluster EMR
<a name="flink-zeppelin-configure"></a>

Procédez comme suit pour configurer Apache Flink sur Apache Zeppelin afin qu'il s'exécute sur un cluster EMR :

1. Créez un nouveau cluster depuis la console Amazon EMR. Sélectionnez emr-6.10.0 ou supérieur pour la version Amazon EMR. Choisissez ensuite de personnaliser votre bundle d'applications avec l'option Personnaliser. Incluez au moins Flink, Hadoop et Zeppelin dans votre offre groupée.  
![\[Dans la console Amazon EMR, personnalisez votre ensemble d'applications avec l'option Personnaliser. Incluez au moins Flink, Hadoop et Zeppelin dans votre offre groupée\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/emr-flink-zeppelin-console.png)

1. Créez le reste de votre cluster avec les paramètres que vous préférez.

1. Une fois que votre cluster est en cours d'exécution, sélectionnez-le dans la console pour afficher ses détails et ouvrez l'onglet Applications. Sélectionnez Zeppelin dans la section Interfaces utilisateur de l'application pour ouvrir l'interface Web Zeppelin. Assurez-vous d'avoir configuré l'accès à l'interface Web Zeppelin avec un tunnel SSH vers le nœud primaire et une connexion proxy, comme décrit dans le [Conditions préalables](#flink-zeppelin-prerequisites).  
![\[Sur l'interface Web de Zeppelin, vous pouvez importer et créer de nouveaux blocs-notes.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/welcome-to-zeppelin.png)

1. Vous pouvez désormais créer une nouvelle note dans un carnet Zeppelin avec Flink comme interpréteur par défaut.  
![\[Vous pouvez créer une nouvelle note dans un carnet Zeppelin avec Flink comme interpréteur par défaut.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/emr-flink-zeppelin-create-notebook.png)

1. Reportez-vous aux exemples de code suivants qui montrent comment exécuter des tâches Flink à partir d'un bloc-notes Zeppelin.

## Exécuter des tâches Flink avec Zeppelin-Flink sur un cluster EMR
<a name="flink-zeppelin-run-jobs"></a>
+ Exemple 1, Flink Scala

  a) WordCount Exemple de lot (SCALA)

  ```
  %flink
  
  val data = benv.fromElements("hello world", "hello flink", "hello hadoop")
  data.flatMap(line => line.split("\\s"))
               .map(w => (w, 1))
               .groupBy(0)
               .sum(1)
               .print()
  ```

  b) WordCount Exemple de streaming (SCALA)

  ```
  %flink
  
  val data = senv.fromElements("hello world", "hello flink", "hello hadoop")
  data.flatMap(line => line.split("\\s"))
    .map(w => (w, 1))
    .keyBy(0)
    .sum(1)
    .print
  
  senv.execute()
  ```  
![\[Par exemple, vous pouvez exécuter des tâches par lots WordCount et en streaming à partir WordCount d'un bloc-notes Zeppelin.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/streaming-wordcount-example.png)
+ Exemple 2, Flink Streaming SQL

  ```
  %flink.ssql
  SET 'sql-client.execution.result-mode' = 'tableau';
  SET 'table.dml-sync' = 'true';
  SET 'execution.runtime-mode' = 'streaming';
  
  create table dummy_table (
    id int,
    data string
  ) with (
    'connector' = 'filesystem',
    'path' = 's3://s3-bucket/dummy_table',
    'format' = 'csv'
  );
  
  INSERT INTO dummy_table SELECT * FROM (VALUES (1, 'Hello World'), (2, 'Hi'), (2, 'Hi'), (3, 'Hello'), (3, 'World'), (4, 'ADD'), (5, 'LINE'));
  
  SELECT * FROM dummy_table;
  ```  
![\[Cet exemple montre comment exécuter une tâche SQL Flink Streaming.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/flink-streaming-sql.png)
+ Exemple 3, Pyflink. Notez que vous devez télécharger votre propre exemple de fichier texte nommé `word.txt` dans votre compartiment S3.

  ```
  %flink.pyflink
  
  import argparse
  import logging
  import sys
  
  from pyflink.common import Row
  from pyflink.table import (EnvironmentSettings, TableEnvironment, TableDescriptor, Schema,
                             DataTypes, FormatDescriptor)
  from pyflink.table.expressions import lit, col
  from pyflink.table.udf import udtf
  
  def word_count(input_path, output_path):
      t_env = TableEnvironment.create(EnvironmentSettings.in_streaming_mode())
      # write all the data to one file
      t_env.get_config().set("parallelism.default", "1")
  
      # define the source
      if input_path is not None:
          t_env.create_temporary_table(
              'source',
              TableDescriptor.for_connector('filesystem')
                             .schema(Schema.new_builder()
                                     .column('word', DataTypes.STRING())
                                     .build())
                             .option('path', input_path)
                             .format('csv')
                             .build())
          tab = t_env.from_path('source')
      else:
          print("Executing word_count example with default input data set.")
          print("Use --input to specify file input.")
          tab = t_env.from_elements(map(lambda i: (i,), word_count_data),
                                    DataTypes.ROW([DataTypes.FIELD('line', DataTypes.STRING())]))
  
      # define the sink
      if output_path is not None:
          t_env.create_temporary_table(
              'sink',
              TableDescriptor.for_connector('filesystem')
                             .schema(Schema.new_builder()
                                     .column('word', DataTypes.STRING())
                                     .column('count', DataTypes.BIGINT())
                                     .build())
                             .option('path', output_path)
                             .format(FormatDescriptor.for_format('canal-json')
                                     .build())
                             .build())
      else:
          print("Printing result to stdout. Use --output to specify output path.")
          t_env.create_temporary_table(
              'sink',
              TableDescriptor.for_connector('print')
                             .schema(Schema.new_builder()
                                     .column('word', DataTypes.STRING())
                                     .column('count', DataTypes.BIGINT())
                                     .build())
                             .build())
  
      @udtf(result_types=[DataTypes.STRING()])
      def split(line: Row):
          for s in line[0].split():
              yield Row(s)
  
      # compute word count
      tab.flat_map(split).alias('word') \
         .group_by(col('word')) \
         .select(col('word'), lit(1).count) \
         .execute_insert('sink') \
         .wait()
  
  
  logging.basicConfig(stream=sys.stdout, level=logging.INFO, format="%(message)s")
  
  
  word_count("s3://s3_bucket/word.txt", "s3://s3_bucket/demo_output.txt")
  ```

1. Choisissez **FLINK JOB** dans l'interface utilisateur Zeppelin pour accéder à l'interface utilisateur Web de Flink et l'afficher.  
![\[Flink code snippet for word count with output showing counts for "hello", "flink", "hadoop", and "world".\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/batch-wordcount-example.png)

1. Lorsque vous choisissez **FLINK JOB**, vous accédez à la console Web Flink dans un autre onglet de votre navigateur.  
![\[Choisir FLINK JOB ouvre la console Web Flink dans un autre onglet de votre navigateur.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/flink-web-console.png)

# Historique des publications de Flink
<a name="Flink-release-history"></a>

Le tableau suivant répertorie la version de Flink incluse dans chaque version d'Amazon EMR, ainsi que les composants installés avec l'application. Pour connaître les versions des composants de chaque version, consultez la section Version des composants de votre version dans [Versions Amazon EMR 7.x](emr-release-7x.md), [Versions Amazon EMR 6.x](emr-release-6x.md) ou [Versions Amazon EMR 5.x](emr-release-5x.md).


**Informations sur la version de Flink**  

| Étiquette de version Amazon EMR | Version Flink | Composants installés avec Flink | 
| --- | --- | --- | 
| emr-7,12.0 | 1,20,0-amzn-6 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-hdfs-zkfc, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7.11.0 | 1,20,0-amzn-5 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-hdfs-zkfc, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7.10.0 | 1,20,0-amzn-4 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7.9.0 | 1,20,0-amzn-3 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7,8.0 | 1,20,0-amzn-2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7,7.0 | 1,20,0-amzn-1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7.6.0 | 1,20,0-amzn-0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7.5.0 | 1.19.1-amzn-1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7.4.0 | 1.19.1-amzn-0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7.3.0 | 1,18.1-amzn-2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7.2.0 | 1,18.1-amzn-1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-5.36.2 | 1.14.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-7.1.0 | 1,18.1-amzn-0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta | 
| emr-7.0.0 | 1.18.0-amzn-0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta-standalone-connectors | 
| emr-6.15.0 | 1.17.1-amzn-1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta-standalone-connectors | 
| emr-6.14.0 | 1.17.1-amzn-0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta-standalone-connectors | 
| emr-6.13.0 | 1.17.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta-standalone-connectors | 
| emr-6.12.0 | 1.17.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta-standalone-connectors | 
| emr-6.11.1 | 1.16.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta-standalone-connectors | 
| emr-6.11.0 | 1.16.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi, delta-standalone-connectors | 
| emr-6.10.1 | 1.16.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi | 
| emr-6.10.0 | 1.16.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi | 
| emr-6.9.1 | 1.15.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi | 
| emr-6.9.0 | 1.15.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi | 
| emr-6.8.1 | 1.15.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi | 
| emr-6.8.0 | 1.15.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi | 
| emr-6.7.0 | 1.14.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi | 
| emr-5.36.1 | 1.14.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-5.36.0 | 1.14.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-6.6.0 | 1.14.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi | 
| emr-5.35.0 | 1.14.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-6.5.0 | 1.14.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi | 
| emr-6.4.0 | 1.13.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config, hudi | 
| emr-6.3.1 | 1.12.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-6.3.0 | 1.12.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-6.2.1 | 1.11.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-6.2.0 | 1.11.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-6.1.1 | 1.11.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-6.1.0 | 1.11.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.34.0 | 1.13.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-5.33.1 | 1.12.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-5.33.0 | 1.12.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-5.32.1 | 1.11.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-5.32.0 | 1.11.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-5.31.1 | 1.11.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-5.31.0 | 1.11.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client, flink-jobmanager-config | 
| emr-5.30.2 | 1.10.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.30.1 | 1.10.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.30.0 | 1.10.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| mr-5.29.0 | 1.9.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.28.1 | 1.9.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.28.0 | 1.9.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.27.1 | 1.8.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.27.0 | 1.8.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.26.0 | 1.8.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.25.0 | 1.8.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.24.1 | 1.8.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.24.0 | 1.8.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.23.1 | 1.7.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.23.0 | 1.7.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.22.0 | 1.7.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.21.2 | 1.7.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.21.1 | 1.7.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.21.0 | 1.7.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.20.1 | 1.6.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.20.0 | 1.6.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.19.1 | 1.6.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.19.0 | 1.6.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.18.1 | 1.6.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.18.0 | 1.6.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.17.2 | 1.5.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.17.1 | 1.5.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.17.0 | 1.5.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.16.1 | 1.5.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.16.0 | 1.5.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.15.1 | 1.4.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.15.0 | 1.4.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.14.2 | 1.4.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.14.1 | 1.4.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.14.0 | 1.4.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.13.1 | 1.4.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.13.0 | 1.4.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.12.3 | 1.4.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.12.2 | 1.4.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.12.1 | 1.4.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.12.0 | 1.4.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.11.4 | 1.3.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.11.3 | 1.3.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.11.2 | 1.3.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.11.1 | 1.3.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.11.0 | 1.3.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.10.1 | 1.3.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.10.0 | 1.3.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.9.1 | 1.3.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.9.0 | 1.3.2 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.8.3 | 1.3.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.8.2 | 1.3.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.8.1 | 1.3.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.8.0 | 1.3.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.7.1 | 1.3.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.7.0 | 1.3.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.6.1 | 1.2.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.6.0 | 1.2.1 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, flink-client | 
| emr-5.5.4 | 1.2.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.5.3 | 1.2.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.5.2 | 1.2.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.5.1 | 1.2.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.5.0 | 1.2.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.4.1 | 1.2.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.4.0 | 1.2.0 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.3.2 | 1.1.4 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.3.1 | 1.1.4 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.3.0 | 1.1.4 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.2.3 | 1.1.3 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.2.2 | 1.1.3 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.2.1 | 1.1.3 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.2.0 | 1.1.3 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.1.1 | 1.1.3 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 
| emr-5.1.0 | 1.1.3 | emrfs, hadoop-client, hadoop-mapred, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, flink-client | 

# Notes de mise à jour de Flink par version
<a name="Flink-release-history-versions"></a>

Consultez les sections suivantes pour les notes de mise à jour complètes.

# Amazon EMR 7.10.0 - Notes de mise à jour de Flink
<a name="Flink-release-history-7100"></a>

**Amazon EMR 7.10.0 - Modifications apportées par Flink**


| Type | Description | 
| --- | --- | 
|  Nouvelle fonction  |  À partir de la version 7.10.0 d'Amazon EMR, vous pouvez activer les connecteurs Kafka et Kinesis Flink plus facilement à l'aide des paramètres de configuration. Ajoutez l'une `kafka.enabled: true` ou `kinesis.enabled: true` l'autre `flink-conf` classification lors de la création du cluster pour configurer automatiquement le connecteur correspondant. Cette approche rationalisée élimine les étapes de configuration manuelle qui étaient auparavant requises.  | 

# Amazon EMR 7.9.0 - Notes de mise à jour de Flink
<a name="Flink-release-history-790"></a>

**Amazon EMR 7.9.0 - Modifications apportées à Flink**


| Type | Description | 
| --- | --- | 
|  Nouvelle fonction  |  À partir d'Amazon EMR 7.9.0, Apache Flink prend en out-of-the-box charge les formats de fichier Avro, Parquet et ORC. Vous pouvez utiliser ces formats directement avec n'importe quelle API Flink (DataStream, Table ou SQL) sans nécessiter de configuration supplémentaire.  | 
|  Nouvelle fonction  |  À partir de la version 7.9.0 d'Amazon EMR, vous pouvez activer plus facilement les catalogues de données Hive Metastore ou AWS Glue en utilisant les paramètres de configuration. Ajoutez l'une `hive.enabled: true` ou `glue.enabled: true` l'autre `flink-conf` classification lors de la création du cluster pour configurer automatiquement le catalogue de données correspondant. Cette approche rationalisée élimine les étapes de configuration manuelle qui étaient auparavant requises.  | 

# Amazon EMR 7.8.0 - Notes de mise à jour de Flink
<a name="Flink-release-history-780"></a>

**Configuration** — EMR Flink fonctionne immédiatement avec le S3A dans toutes les régions/partitions. AWS 

# Amazon EMR 7.7.0 - Notes de mise à jour de Flink
<a name="Flink-release-history-770"></a>
+ Le shell SQL Flink peut être invoqué facilement à l'aide de la commande `flink-sql-client` liée symboliquement à `/usr/lib/flink/bin/sql-client.sh`

# Amazon EMR 7.6.0 - Notes de mise à jour de Flink
<a name="Flink-release-history-760"></a>

## Amazon EMR 7.6.0 - Fonctionnalités de Flink
<a name="Flink-release-history-760-features"></a>
+ Aucune modification pour la version.

# Amazon EMR 7.5.0 - Notes de mise à jour de Flink
<a name="Flink-release-history-750"></a>


| Type | Description | 
| --- | --- | 
|  Fonctionnalité  |  Ajout de la prise en charge de l'exécution de tâches Flink avec un fichier JAR distant.  | 
|  Amélioration  |  Sécurisez le thread d'exclusion et d'inclusion des sommets.  | 

## Amazon EMR 7.5.0 - Fonctionnalités de Flink
<a name="Flink-release-history-750-features"></a>
+ À partir d'Amazon EMR 7.5.0, vous pouvez spécifier un emplacement Amazon S3 comme chemin JAR lorsque vous utilisez les commandes `run` et Apache `run-application` Flink CLI. Lorsque vous fournissez un chemin S3, EMR télécharge automatiquement le fichier JAR depuis Amazon S3 vers le stockage EBS du cluster. Chaque fois que vous spécifiez le même fichier JAR, EMR télécharge la dernière version depuis Amazon S3 au lieu de réutiliser le fichier JAR existant sur le cluster. 
+ À partir d'Amazon EMR 7.5.0, les clients peuvent transmettre le chemin distant (un emplacement S3) en tant que chemin JAR avec les commandes `run` Flink CLI`run-application`. Le fichier JAR est ensuite automatiquement extrait du magasin S3 vers le stockage EBS du cluster. Si le même fichier JAR est à nouveau fourni, il télécharge le dernier depuis S3 et ne réutilise pas le fichier JAR existant sur le cluster.

# Amazon EMR 7.4.0 - Notes de mise à jour de Flink
<a name="Flink-release-history-740"></a>


| Type | Description | 
| --- | --- | 
|  Upgrade  |  La version de Flink est mise à niveau vers la version 1.19.1.  | 

# Amazon EMR 7.3.0 - Notes de mise à jour de Flink
<a name="Flink-release-history-730"></a>
+ Par défaut, les clusters dont le chiffrement en transit est activé via la configuration de sécurité utiliseront le protocole TLS 1.3 pour la communication interne entre les processus Flink, le point de terminaison REST de Job Manager et le serveur d'historique des tâches Flink.

# Amazon EMR 7.2.0 - Notes de mise à jour de Flink
<a name="Flink-release-history-720"></a>


| Type | Description | 
| --- | --- | 
|  Amélioration  |  Support pour l'ajout d'étiquettes personnalisées au service Kubernetes par tâche Flink via la configuration. `kubernetes.service.labels`  | 