

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

[Apache Flink](https://flink.apache.org/) è un motore di flussi di dati in streaming che può essere utilizzato l'elaborazione di flussi in tempo reale su origini dati a elevato throughput. Flink supporta la semantica temporale out-of-order degli eventi, la semantica Exactly-Once, il controllo della contropressione ed è APIs ottimizzata per scrivere applicazioni in streaming e in batch.

Inoltre, Flink dispone di connettori per origini dati di terze parti, ad esempio le seguenti:
+ [Flusso di dati Amazon Kinesis](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)
+ [Connettore Flink Elasticsearch](https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/connectors/elasticsearch2.html)
+ [API di streaming di 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 supporta Flink come applicazione YARN in modo da poter gestire le risorse insieme ad altre applicazioni all'interno di un cluster. Flink-on-YARNti consente di inviare lavori Flink transitori oppure puoi creare un cluster di lunga durata che accetta più lavori e alloca le risorse in base alla prenotazione YARN complessiva.

Flink è incluso in Amazon EMR 5.1.0 e versioni successive.

**Nota**  
Nella versione 5.2.1 di Amazon EMR è stato integrato il supporto per la classe `FlinkKinesisConsumer`.

La seguente tabella indica la versione di Flink inclusa nell'ultimo rilascio della serie Amazon EMR 7.x insieme ai componenti che Amazon EMR installa con Flink.

[Per la versione dei componenti installati con Flink in questa versione, vedere Versioni dei componenti della release 7.12.0.](emr-7120-release.md)


**Informazioni sulla versione di Flink per emr-7.12.0**  

| Etichetta di rilascio di Amazon EMR | Versione di Flink | Componenti installati con 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 | 

La seguente tabella indica la versione di Flink inclusa nell'ultimo rilascio della serie Amazon EMR 6.x insieme ai componenti che Amazon EMR installa con Flink.

Per la versione dei componenti installati con Flink in questo rilascio, consulta la sezione [Versioni dei componenti del rilascio 6.15.0](emr-6150-release.md).


**Informazioni sulla versione di Flink per emr-6.15.0**  

| Etichetta di rilascio di Amazon EMR | Versione di Flink | Componenti installati con 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 | 

La seguente tabella indica la versione di Flink inclusa nell'ultimo rilascio della serie Amazon EMR 5.x insieme ai componenti che Amazon EMR installa con Flink.

[Per la versione dei componenti installati con Flink in questa versione, vedere Versioni dei componenti della release 5.36.2.](emr-5362-release.md)


**Informazioni sulla versione di Flink per emr-5.36.2**  

| Etichetta di rilascio di Amazon EMR | Versione di Flink | Componenti installati con 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**
+ [

# Creazione di un cluster con Flink
](flink-create-cluster.md)
+ [

# Configurazione di Flink in Amazon EMR
](flink-configure.md)
+ [

# Utilizzo dei processi Flink in Amazon EMR
](flink-jobs.md)
+ [

# Utilizzo della shell Scala
](flink-scala.md)
+ [

# Trovare l'interfaccia Web Flink
](flink-web-interface.md)
+ [

# Autoscaler Flink
](flink-autoscaler.md)
+ [

# Ottimizzazione dei tempi di riavvio dei processi per le operazioni di ripristino delle attività e dimensionamento
](flink-restart.md)
+ [

# Utilizzo dei processi Flink di Zeppelin in Amazon EMR
](flink-zeppelin.md)
+ [

# Cronologia dei rilasci di Flink
](Flink-release-history.md)

# Creazione di un cluster con Flink
<a name="flink-create-cluster"></a>

Puoi avviare un cluster con Console di gestione AWS AWS CLI, o un AWS SDK.<a name="emr-flink-create-console"></a>

**Per avviare un cluster con Flink installato dalla console**

1. [Apri la console Amazon EMR in /emr. https://console.aws.amazon.com](https://console.aws.amazon.com/emr/)

1. Seleziona **Create cluster** (Crea cluster), **Go to advanced options** (Vai alle opzioni avanzate).

1.  Per **Software Configuration (Configurazione software)**, scegli **EMR Release emr-5.1.0** o successivo.

1.  Scegli **Flink** come applicazione, insieme alle altre da installare.

1.  Seleziona le altre opzioni come richiesto, quindi scegli **Create cluster (Crea cluster)**.

**Per avviare un cluster con Flink dal AWS CLI**
+ Creare il cluster con il seguente comando:

  ```
  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
  ```
**Nota**  
I caratteri di continuazione della riga Linux (\$1) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuovili o sostituiscili con un accento circonflesso (^).

# Configurazione di Flink in Amazon EMR
<a name="flink-configure"></a>

## Configurazione di Flink con Hive Metastore e Catalogo Glue
<a name="flink-configure-hive"></a>

Le versioni 6.9.0 e successive di Amazon EMR supportano sia Hive Metastore che AWS Glue Catalog con il connettore Apache Flink per Hive. Questa sezione descrive i passaggi necessari per configurare [Catalogo AWS Glue](#flink-configure-hive-glue) e [Hive Metastore](#flink-configure-hive-metastore) con Flink.

**Topics**
+ [

### Utilizzo di Hive Metastore
](#flink-configure-hive-metastore)
+ [

### Usa il AWS Glue Data Catalog
](#flink-configure-hive-glue)

### Utilizzo di Hive Metastore
<a name="flink-configure-hive-metastore"></a>

1. Crea un cluster EMR con il rilascio 6.9.0 o successivi e almeno due applicazioni: **Hive** e **FLINK**. 

1. Utilizza [script runner](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-commandrunner.html) per eseguire il seguente script come funzione passo passo:

   `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/it_it/emr/latest/ReleaseGuide/images/hive.png)

### Usa il AWS Glue Data Catalog
<a name="flink-configure-hive-glue"></a>

1. Crea un cluster EMR con il rilascio 6.9.0 o successivi e almeno due applicazioni: **Hive** e **FLINK**. 

1. Seleziona **Utilizza per i metadati delle tabelle Hive** nelle impostazioni del Catalogo dati AWS Glue per abilitare il Catalogo dati nel cluster.

1. Utilizza [script runner](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-commandrunner.html) per eseguire il seguente script come funzione di fase: [Esegui comandi e script su 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/it_it/emr/latest/ReleaseGuide/images/hive.png)

## Configurazione di Flink con un file di configurazione
<a name="flink-configure-config"></a>

Puoi utilizzare l'API di configurazione di Amazon EMR per configurare Flink con un file di configurazione. I file configurabili all'interno dell'API sono:
+ `flink-conf.yaml`
+ `log4j.properties`
+ `flink-log4j-session`
+ `log4j-cli.properties`

Il file di configurazione principale per Flink è `flink-conf.yaml`. 

**Per configurare il numero di slot di attività utilizzati per Flink dal AWS CLI**

1. Creare un file, `configurations.json`, con i seguenti contenuti:

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

1. Quindi, creare un cluster con la seguente configurazione:

   ```
   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
   ```

**Nota**  
Puoi anche modificare alcune configurazioni con l'API Flink. Per ulteriori informazioni, consulta [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) nella documentazione di Flink.  
Con Amazon EMR versione 5.21.0 e successive, puoi sovrascrivere le configurazioni del cluster e specificare classificazioni di configurazione aggiuntive per ogni gruppo di istanze in un cluster in esecuzione. A tale scopo, puoi utilizzare la console Amazon EMR, AWS Command Line Interface (AWS CLI) o l' AWS SDK. Per ulteriori informazioni, consulta [Specifica di una configurazione per un gruppo di istanze in un cluster in esecuzione](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html).

### Opzioni di parallelismo
<a name="flink-parallelism"></a>

Il proprietario dell'applicazione sa quali risorse assegnare alle attività all'interno di Flink. Per gli esempi riportati in questa documentazione, utilizza lo stesso numero di attività delle istanze di attività utilizzate per l'applicazione. Generalmente lo consigliamo per il livello iniziale di parallelismo, ma è anche possibile aumentare la granularità del parallelismo con gli slot delle attività, che generalmente non dovrebbero superare il numero di [core virtuali](https://aws.amazon.com/ec2/virtualcores/) per istanza. Per ulteriori informazioni sull'architettura Flink, consulta [https://ci.apache.org/projects/flink/flink-docs-master/concepts/index.html](https://ci.apache.org/projects/flink/flink-docs-master/concepts/index.html) nella documentazione di Flink.

## Configurazione di Flink su un cluster EMR con nodi primari multipli
<a name="flink-multi-master"></a>

 JobManager of Flink rimane disponibile durante il processo di failover del nodo primario in un cluster Amazon EMR con più nodi primari. A partire da Amazon EMR 5.28.0, anche l' JobManager alta disponibilità viene abilitata automaticamente. Non è necessaria alcuna configurazione manuale.

Con le versioni 5.27.0 o precedenti di Amazon EMR, JobManager esiste un singolo punto di errore. In caso di JobManager errore, perde tutti gli stati del processo e non riprende i processi in esecuzione. È possibile abilitare l' JobManager alta disponibilità configurando il conteggio dei tentativi di applicazione, il checkpoint e l'attivazione ZooKeeper come storage di stato per Flink, come dimostra l'esempio seguente:

```
[
  {
    "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"
    }
  }
]
```

È necessario configurare il numero massimo di tentativi master dell'applicazione per YARN e i tentativi dell'applicazione per Flink. Per ulteriori informazioni, consulta [Configurazione dell'elevata disponibilità del cluster YARN](https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/jobmanager_high_availability.html#maximum-application-master-attempts-yarn-sitexml). Potresti anche voler configurare il checkpoint Flink per riavviare e ripristinare JobManager i job in esecuzione dai checkpoint precedentemente completati. Per ulteriori informazioni, consulta [Checkpoint di Flink](https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/stream/state/checkpointing.html).

## Configurazione delle dimensioni del processo di memoria
<a name="flink-process-memory"></a>

Per le versioni di Amazon EMR che utilizzano Flink 1.11.x, è necessario configurare la dimensione totale del processo di memoria sia per () che per JobManager (`jobmanager.memory.process.size`) in. TaskManager `taskmanager.memory.process.size` `flink-conf.yaml` È possibile impostare questi valori configurando il cluster con l'API di configurazione o rimuovendo manualmente i commenti da questi campi tramite SSH. Flink fornisce i seguenti valori di default.
+ `jobmanager.memory.process.size`: 1600m
+ `taskmanager.memory.process.size`: 1728m

Per escludere il metaspace e l'overhead JVM, utilizza la dimensione totale della memoria Flink (`taskmanager.memory.flink.size`) anziché `taskmanager.memory.process.size`. Il valore di default per `taskmanager.memory.process.size` è 1280m. Non è consigliabile impostare sia `taskmanager.memory.process.size` che `taskmanager.memory.process.size`.

Tutte le versioni di Amazon EMR che utilizzano Flink 1.12.0 e versioni successive hanno i valori di default elencati nell'open-source impostati per Flink come valori predefiniti su Amazon EMR, quindi non è necessario configurarli personalmente.

## Configurazione della dimensione del file di output del log
<a name="flink-log-output"></a>

I container di applicazioni Flink creano e scrivono in tre tipi di file di log: file `.out`, file `.log` e file `.err`. Solo i file `.err` vengono compressi e rimossi dal file system, mentre i file di log `.log` e `.out` rimangono nel file system. Per garantire che questi file di output rimangano gestibili e che il cluster rimanga stabile, è possibile configurare la rotazione dei log in `log4j.properties` per impostare un numero massimo di file e limitarne le dimensioni.

**Amazon EMR versione 5.30.0 e successive**

A partire dalla versione 5.30.0 di Amazon EMR, Flink utilizza il framework di registrazione log4j2 con il nome della classificazione di configurazione `flink-log4j.` Nella seguente configurazione di esempio viene illustrato il formato 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 versione 5.29.0 e precedenti**

Con Amazon EMR versioni 5.29.0 e precedenti, Flink utilizza il framework di registrazione log4j. La seguente configurazione di esempio illustra il formato 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"
    },
  }
]
```

## Configurazione di Flink per l'esecuzione con Java 11
<a name="flink-configure-java11"></a>

I rilasci 6.12.0 e successivi di Amazon EMR forniscono il supporto di runtime Java 11 per Flink. Le sezioni seguenti descrivono come configurare il cluster per fornire il supporto di runtime Java 11 per Flink.

**Topics**
+ [

### Configurazione di Flink per Java 11 quando si crea un cluster
](#flink-configure-java11-create)
+ [

### Configurazione di Flink per Java 11 su un cluster in esecuzione
](#flink-configure-java11-update)
+ [

### Verifica del runtime Java per Flink su un cluster in esecuzione
](#flink-configure-java11-confirm)

### Configurazione di Flink per Java 11 quando si crea un cluster
<a name="flink-configure-java11-create"></a>

Per creare un cluster EMR con Flink e il runtime Java 11, procedi come segue. Il file di configurazione in cui aggiungere il supporto per il runtime Java 11 è `flink-conf.yaml`.

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

**Per creare un cluster con Flink e Java 11 runtime nella console**

1. [Accedi a e apri Console di gestione AWS la console Amazon EMR su https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. Scegli **Cluster** in **EMR su EC2** nel riquadro di navigazione, quindi scegli **Crea cluster**.

1. Seleziona Amazon EMR rilascio 6.12.0 o successivi e scegli di installare l'applicazione Flink. Seleziona tutte le altre applicazioni che desideri installare sul tuo cluster.

1. Continua a configurare il cluster. Nella sezione **Impostazioni software** opzionali, utilizza l'opzione predefinita **Inserisci configurazione** e inserisci la seguente configurazione:

   ```
   [
       {
         "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. Continua a configurare e avvia il cluster.

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

**Per creare un cluster con Flink e il runtime Java 11 dalla CLI**

1. Crea un file di configurazione `configurations.json` che configuri Flink per l'utilizzo di 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. Da AWS CLI, crea un nuovo cluster EMR con Amazon EMR versione 6.12.0 o successiva e installa l'applicazione Flink, come mostrato nell'esempio seguente:

   ```
   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
   ```

------

### Configurazione di Flink per Java 11 su un cluster in esecuzione
<a name="flink-configure-java11-update"></a>

Utilizza i seguenti passaggi per aggiornare un cluster EMR in esecuzione con Flink e il runtime Java 11. Il file di configurazione in cui aggiungere il supporto per il runtime Java 11 è `flink-conf.yaml`.

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

**Per aggiornare un cluster in esecuzione con Flink e Java 11 runtime nella console**

1. [Accedi a e apri Console di gestione AWS la console Amazon EMR su https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. Scegli **Cluster** in **EMR su EC2** nel riquadro di navigazione e seleziona il cluster da aggiornare.
**Nota**  
Il cluster deve utilizzare Amazon EMR rilascio 6.12.0 o successivi per supportare Java 11.

1. Seleziona la scheda **Configurazione**.

1. Nella sezione **Configurazioni del gruppo di istanze**, seleziona il gruppo di istanze **In esecuzione** che desideri aggiornare, quindi scegli **Riconfigura** dal menu delle azioni dell'elenco.

1. Riconfigura il gruppo di istanze con l'opzione **Modifica attributi** come segue. Seleziona **Aggiungi nuova configurazione** dopo ognuna di esse.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/flink-configure.html)

1. Quindi seleziona **Salva modifiche** per aggiungere le configurazioni.

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

**Per aggiornare un cluster in esecuzione per utilizzare Flink e il runtime Java 11 dalla CLI**

Utilizza il comando `modify-instance-groups` per specificare una nuova configurazione per un gruppo di istanze in un cluster in esecuzione.

1. Innanzitutto, crea un file di configurazione `configurations.json` che configuri Flink per l'utilizzo di Java 11. Nell'esempio seguente, sostituiscilo *ig-1xxxxxxx9* con l'ID del gruppo di istanze che desideri riconfigurare. Salva il file nella stessa directory in cui eseguirai il comando `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. Da AWS CLI, esegui il comando seguente. Sostituisci l'ID per il gruppo di istanze che desideri riconfigurare:

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

------

### Verifica del runtime Java per Flink su un cluster in esecuzione
<a name="flink-configure-java11-confirm"></a>

Per determinare il runtime Java per un cluster in esecuzione, accedi al nodo primario con SSH come descritto in [Connessione al nodo primario con SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html). Quindi, esegui il comando riportato di seguito:

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

Il comando `ps` con l'opzione `-ef` elenca tutti i processi in esecuzione sul sistema. È possibile filtrare l'output con `grep` per trovare le menzioni della stringa `flink`. Esamina l'output per il valore Java Runtime Environment (JRE), `jre-XX`. Nell'output seguente, `jre-11` indica che Java 11 viene rilevato in fase di runtime per 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.
```

In alternativa, [accedi al nodo primario con SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) e avvia una sessione Flink YARN con il comando `flink-yarn-session -d`. L'output mostra la Java Virtual Machine (JVM) per Flink, `java-11-amazon-corretto` nel seguente esempio:

```
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
```

# Utilizzo dei processi Flink in Amazon EMR
<a name="flink-jobs"></a>

Esistono diversi modi per interagire con Flink su Amazon EMR: tramite la console, l'interfaccia Flink disponibile nell'interfaccia utente di tracciamento e ResourceManager la riga di comando. Puoi inviare un file JAR a un'applicazione Flink in uno di questi modi. Una volta inviato, un file JAR diventa un lavoro gestito da Flink. JobManager JobManager Si trova sul nodo YARN che ospita il demone Application Master della sessione Flink.

Puoi eseguire un'applicazione Flink come processo YARN su un cluster di lunga durata o su un cluster transitorio. Su un cluster di lunga durata, è possibile inviare più processi Flink a un cluster Flink in esecuzione su Amazon EMR. Se si esegue un processo Flink su un cluster transitorio, il cluster Amazon EMR esiste solo per il tempo necessario all'esecuzione dell'applicazione Flink, quindi verranno addebitati solo le risorse e il tempo utilizzati. Puoi inviare un job Flink con l'operazione API Amazon `AddSteps` EMR, come argomento del passaggio `RunJobFlow` dell'operazione e tramite AWS CLI `add-steps` i `create-cluster` comandi or.

## Avvio di un'applicazione YARN di Flink come fase su un cluster di lunga durata
<a name="flink-add-step"></a>

Per avviare un'applicazione Flink alla quale più client possono inviare lavoro tramite operazioni API YARN, è necessario creare un cluster o aggiungere a un'applicazione Flink un cluster esistente. Per istruzioni su come creare un nuovo cluster, consulta [Creazione di un cluster con Flink](flink-create-cluster.md). Per avviare una sessione YARN su un cluster esistente, segui le seguenti fasi dalla console, dalla AWS CLI o dall'SDK Java.

**Nota**  
Il comando `flink-yarn-session` è stato aggiunto alla versione 5.5.0 di Amazon EMR come wrapper per lo script `yarn-session.sh` per semplificare l'esecuzione. Se usi una versione precedente di Amazon EMR, sostituisci `bash -c "/usr/lib/flink/bin/yarn-session.sh -d"` per **Arguments (Argomenti)** nella console o `Args` nel comando AWS CLI .

**Per inviare un processo Flink su un cluster esistente dalla console**

Invia la sessione Flink usando il comando `flink-yarn-session` in un cluster esistente.

1. [Apri la console Amazon EMR in /emr. https://console.aws.amazon.com](https://console.aws.amazon.com/emr/)

1. Nell'elenco dei cluster, selezionare il cluster precedentemente avviato.

1. Nella pagina dei dettagli del cluster, scegliere **Steps (Fasi)**, **Add Step (Aggiungi fase)**.

1. Utilizza le linee guida che seguono per immettere i parametri, quindi scegli **Aggiungi**.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/flink-jobs.html)

**Per inviare un job Flink su un cluster esistente con AWS CLI**
+ Utilizza il comando `add-steps` per avviare un processo Flink all'interno di un cluster di lunga durata. Il seguente comando di esempio specifica `Args="flink-yarn-session", "-d"` per avviare una sessione Flink all'interno del cluster YARN in uno stato scollegato (`-d`). Consulta [Impostazione YARN](https://ci.apache.org/projects/flink/flink-docs-release-1.3/setup/yarn_setup.html#flink-yarn-session) nella documentazione più aggiornata di Flink per i dettagli sugli argomenti.

  ```
  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"
  ```

## Invio di lavoro a un'applicazione Flink esistente su un cluster di lunga durata
<a name="flink-submit-work"></a>

Se si dispone già di un'applicazione Flink esistente su un cluster di lunga durata, è possibile specificare l'ID applicazione Flink del cluster per inviare il lavoro. Per ottenere l'ID dell'applicazione, `yarn application -list` esegui l'operazione [YarnClient](https://hadoop.apache.org/docs/current/api/org/apache/hadoop/yarn/client/api/YarnClient.html)API AWS CLI o tramite:

```
$ 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'ID dell'applicazione per questa sessione Flink è`application_1473169569237_0002`, che puoi utilizzare per inviare lavori all'applicazione da AWS CLI o da un SDK.

**Example SDK per 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>
```

## Invio di un processo transitorio Flink
<a name="flink-transient-job"></a>

I seguenti esempi avviano un cluster transitorio che esegue un processo Flink e poi termina al completamento.

**Example SDK per 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**  
Utilizza il sottocomando `create-cluster` per creare un cluster transitorio che termina al termine del processo Flink:  

```
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/""
```

# Utilizzo della shell Scala
<a name="flink-scala"></a>

Attualmente, la shell Scala di Flink per i cluster EMR è configurata solo per avviare nuove sessioni YARN. È possibile utilizzare la shell Scala seguendo la procedura riportata di seguito.

**Utilizzo della shell Scala di Flink sul nodo primario**

1. Accedi al nodo primario con SSH come descritto in [Connessione al nodo primario con SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html).

1. Per avviare una shell, digitare quanto segue:

   In Amazon EMR versione 5.5.0 e successive, puoi utilizzare il seguente comando per avviare un cluster Yarn per Scala Shell con uno. TaskManager

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

   Nelle versioni precedenti di Amazon EMR, utilizza:

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

   In questo modo si avvia la shell di Flink Scala in modo da poter utilizzare Flink interattivamente. Come per altre interfacce e opzioni, è possibile dimensionare il valore dell'opzione `-n` utilizzato nell'esempio in base al numero di attività che si desidera eseguire dalla shell.

   Per ulteriori informazioni, consulta [Scala REPL](https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/scala_shell.html) nella documentazione ufficiale di Apache Flink.

# Trovare l'interfaccia Web Flink
<a name="flink-web-interface"></a>

L'Application Master che appartiene all'applicazione Flink ospita l'interfaccia Web Flink. È un modo alternativo per inviare un JAR come processo o per visualizzare lo stato corrente di altri processi. L'interfaccia web di Flink è attiva finché è in corso una sessione Flink. Se hai già un job YARN di lunga durata attivo, puoi seguire le istruzioni nell'argomento [Connect to the primary node with SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) nella Amazon *EMR Management Guide* per connetterti a YARN. ResourceManager Ad esempio, se hai configurato un tunnel SSH e hai attivato un proxy nel tuo browser, scegli la ResourceManager connessione in **Connessioni nella pagina** dei dettagli del cluster EMR.

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


Dopo averlo trovato ResourceManager, seleziona l'applicazione YARN che ospita una sessione Flink. Scegliere il link sotto la colonna **Tracking UI (Monitoraggio IU)**. 

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


Nell'interfaccia Web di Flink, è possibile visualizzare la configurazione, inviare il proprio JAR personalizzato come processo o monitorare i processi in corso. 

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


# Autoscaler Flink
<a name="flink-autoscaler"></a>

## Panoramica di
<a name="flink-autoscaler-overview"></a>

Le versioni 6.15.0 e successive di Amazon EMR supportano *l'autoscaler di Flink*. La funzionalità di autoscaler dei processi raccoglie i parametri relativi all'esecuzione dei processi di streaming Flink e dimensiona automaticamente i singoli vertici di lavoro. Questo riduce la contropressione e soddisfa l'obiettivo di utilizzo impostato.

Per ulteriori informazioni, consulta la sezione [Autoscaler](https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main/docs/custom-resource/autoscaler/) della documentazione di *Apache Flink Kubernetes Operator*.

## Considerazioni
<a name="flink-autoscaler-considerations"></a>
+ L'autoscaler di Flink è supportato dalle versioni 6.15.0 e successive di Amazon EMR.
+ L'autoscaler Flink è supportato solo per i processi di streaming.
+ È supportato solo il pianificatore adattivo. Il pianificatore predefinito non è supportato.
+ Per consentire la fornitura dinamica di risorse, raccomandiamo di abilitare il dimensionamento dei cluster. La scalabilità gestita di Amazon EMR è preferita perché la valutazione dei parametri avviene ogni 5-10 secondi. A questo intervallo, il cluster può adattarsi più facilmente alla modifica delle risorse del cluster richieste.

## Abilita autoscaler
<a name="flink-autoscaler-start"></a>

Utilizza i seguenti passaggi per abilitare l'autoscaler Flink quando crei un Amazon EMR su cluster EC2.

1. Crea un nuovo cluster EMR nella console Amazon EMR:

   1. Scegli la versione `emr-6.15.0` o una successiva di Amazon EMR. Seleziona il bundle di applicazioni **Flink** e poi tutte le altre applicazioni che potresti voler includere nel tuo cluster.  
![\[Application bundle options for Amazon EMRcluster, with Flink highlighted and selected.\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/images/emr-flink-cluster-create.png)

   1. Nell'opzione **Dimensionamento e provisioning del cluster**, scegli **Utilizza il dimensionamento gestito da EMR**.  
![\[Cluster scaling options: manual, EMR-managed (selected), or custom automatic scaling.\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/images/emr-flink-cluster-managedscaling.png)

1. Nella sezione **Impostazioni software**, inserisci la seguente configurazione per abilitare l'autoscaler Flink. Nel caso dei test, imposta l'intervallo di decisione, l'intervallo della finestra dei parametri e l'intervallo di stabilizzazione su un valore inferiore in modo che il processo prenda immediatamente una decisione sul dimensionamento per eseguire una verifica più semplice.

   ```
   [
     {
       "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. Seleziona o configura qualsiasi altra impostazione come preferisci e crea il cluster abilitato per autoscaler Flink.

## Configurazioni di autoscaler
<a name="flink-autoscaler-config"></a>

Questa sezione copre la maggior parte delle configurazioni che puoi modificare in base alle tue esigenze specifiche.

**Nota**  
Con configurazioni basate sul tempo come le impostazioni `time`, `interval` e `window`, l'unità predefinita quando non ne viene specificata una in particolare è i millisecondi. Quindi un valore di `30` senza suffisso equivale a 30 millisecondi. Per altre unità di tempo, includi il suffisso appropriato di `s` per *secondi*, `m` per *minuti* o `h` per *ore*.

**Topics**
+ [Configurazioni dei loop](#flink-autoscaler-config-loop)
+ [Configurazioni di parametri e cronologia](#flink-autoscaler-config-metrics)
+ [Configurazioni del vertice](#flink-autoscaler-config-vertex)
+ [Configurazioni del backlog](#flink-autoscaler-config-backlog)
+ [Configurazioni delle operazioni di dimensionamento](#flink-autoscaler-config-scale)

### Configurazioni dei loop di autoscaler
<a name="flink-autoscaler-config-loop"></a>

Autoscaler recupera i parametri a livello di vertice del lavoro per ogni intervallo di tempo configurabile, li converte in elementi utilizzabili su vasta scala, stima il nuovo parallelismo dei vertici del lavoro e lo consiglia al pianificatore di processi. I parametri vengono raccolti solo dopo l'ora di riavvio del processo e l'intervallo di stabilizzazione del cluster.


| Chiave di configurazione | Valore predefinito | Description | Valori di esempio | 
| --- | --- | --- | --- | 
| job.autoscaler.enabled | false | Abilita il dimensionamento automatico sul cluster Flink. | true, false | 
| job.autoscaler.decision.interval | 60s | Intervallo di decisione di autoscaler. | 30 (l'unità predefinita è in millisecondi), 5m, 1h | 
| job.autoscaler.restart.time | 3m | Tempo di riavvio previsto da utilizzare fino a quando l'operatore non sarà in grado di determinarlo in modo affidabile dalla cronologia. | 30 (l'unità predefinita è in millisecondi), 5m, 1h | 
| job.autoscaler.stabilization.interval | 300s | Periodo di stabilizzazione in cui non verrà eseguito alcun nuovo dimensionamento. | 30 (l'unità predefinita è in millisecondi), 5m, 1h | 
| job.autoscaler.debug.logs.interval | 300s | Intervallo di log per il debug di autoscaler. | 30 (l'unità predefinita è in millisecondi), 5m, 1h | 

### Aggregazione dei parametri e configurazioni cronologiche
<a name="flink-autoscaler-config-metrics"></a>

Autoscaler recupera i parametri e li aggrega in base alla finestra temporale scorrevole; poi vengono valutati per poter prendere decisioni sul dimensionamento. La cronologia delle decisioni sul dimensionamento per ogni vertice di lavoro viene utilizzata per stimare il nuovo parallelismo. C'è sia una scadenza basata sull'età che una dimensione della cronologia (almeno 1).


| Chiave di configurazione | Valore predefinito | Description | Valori di esempio | 
| --- | --- | --- | --- | 
| job.autoscaler.metrics.window | 600s | Scaling metrics aggregation window size. | 30 (l'unità predefinita è in millisecondi), 5m, 1h | 
| job.autoscaler.history.max.count | 3 | Numero massimo di decisioni precedenti sul dimensionamento da mantenere per vertice. | 1 Da a Integer.MAX\$1VALUE | 
| job.autoscaler.history.max.age | 24h | Numero minimo di decisioni precedenti sul dimensionamento da mantenere per vertice. | 30 (l'unità predefinita è in millisecondi), 5m, 1h | 

### Configurazioni a livello di vertice di lavoro
<a name="flink-autoscaler-config-vertex"></a>

Il parallelismo di ciascun vertice di lavoro viene modificato in base all'utilizzo del target e limitato dai limiti di parallelismo min-max. Non è consigliabile impostare un utilizzo target vicino al 100% (ovvero il valore 1) e il limite di utilizzo funge da buffer per gestire le fluttuazioni di carico intermedie.


| Chiave di configurazione | Valore predefinito | Description | Valori di esempio | 
| --- | --- | --- | --- | 
| job.autoscaler.target.utilization | 0.7 | Utilizzo del vertice target. | 0 - 1 | 
| job.autoscaler.target.utilization.boundary | 0.4 | Limite di utilizzo del vertice target. Il dimensionamento non verrà eseguito se la velocità di elaborazione corrente è compresa tra [target\$1rate / (target\$1utilization - boundary) e (target\$1rate / (target\$1utilization \$1 boundary)] | 0 - 1 | 
| job.autoscaler.vertex.min-parallelism | 1 | Il parallelismo minimo che l'autoscaler può utilizzare. | 0 - 200 | 
| job.autoscaler.vertex.max-parallelism | 200 | Il parallelismo massimo che l'autoscaler può utilizzare. Ricorda che autoscaler ignora questo limite se è superiore al parallelismo massimo configurato nella configurazione di Flink o direttamente su ciascun operatore. | 0 - 200 | 

### Configurazioni di elaborazione del backlog
<a name="flink-autoscaler-config-backlog"></a>

Il vertice di lavoro necessita di risorse aggiuntive per gestire gli eventi in sospeso, o i backlog, che si accumulano durante il periodo delle operazioni di dimensionamento. In questo caso si parla anche di durata `catch-up`. Se il tempo di elaborazione del backlog supera il valore `lag -threshold` configurato, l'utilizzo del vertice di lavoro target aumenta fino al livello massimo. Questo aiuta a prevenire operazioni di dimensionamento non necessarie durante l'elaborazione del backlog.


| Chiave di configurazione | Valore predefinito | Description | Valori di esempio | 
| --- | --- | --- | --- | 
| job.autoscaler.backlog-processing.lag-threshold | 5m | La soglia di ritardo eviterà dimensionamenti non necessari rimuovendo i messaggi in sospeso responsabili del ritardo. | 30 (l'unità predefinita è in millisecondi), 5m, 1h | 
| job.autoscaler.catch-up.duration | 15m | La durata prevista per l'elaborazione completa di qualsiasi backlog dopo un'operazione di dimensionamento. Imposta su 0 per disabilitare il dimensionamento basato sul backlog. | 30 (l'unità predefinita è in millisecondi), 5m, 1h | 

### Configurazioni delle operazioni di dimensionamento
<a name="flink-autoscaler-config-scale"></a>

Autoscaler non esegue operazioni di riduzione immediatamente dopo un'operazione di aumento entro il periodo di grazia. In questo modo si evitano cicli di funzionamento non necessari della bilancia causati da up-down-up-down fluttuazioni temporanee del carico. 

Possiamo utilizzare il rapporto operativo di riduzione per diminuire gradualmente il parallelismo e liberare risorse per far fronte a picchi di carico temporanei. Inoltre, questo aiuta a prevenire le operazioni di aumento minori non necessarie dopo un'operazione di riduzione importante. 

Possiamo rilevare un'operazione di aumento inefficace in base alla cronologia delle decisioni dei vertici di lavoro precedenti in questo ambito per prevenire ulteriori modifiche al parallelismo.


| Chiave di configurazione | Valore predefinito | Description | Valori di esempio | 
| --- | --- | --- | --- | 
| job.autoscaler.scale-up.grace-period | 1h | Durata in cui non è consentita la riduzione di un vertice dopo un aumento. | 30 (l'unità predefinita è in millisecondi), 5m, 1h | 
| job.autoscaler.scale-down.max-factor | 0.6 | Fattore di dimensionamento massimo verso il basso. Un valore di 1 indica che non ci sono limiti alla riduzione, mentre 0.6 significa che il lavoro può essere ridotto solo con il 60% del parallelismo originale. | 0 - 1 | 
| job.autoscaler.scale-up.max-factor | 100000. | Rapporto massimo di aumento. Il valore 2.0 significa che sul lavoro può essere eseguito un aumento solo con il 200% del parallelismo attuale. | 0 - Integer.MAX\$1VALUE | 
| job.autoscaler.scaling.effectiveness.detection.enabled | false | Se consentire il rilevamento di operazioni di dimensionamento inefficaci e consentire all'autoscaler di bloccare ulteriori processi di aumento. | true, false | 

# Ottimizzazione dei tempi di riavvio dei processi per le operazioni di ripristino delle attività e dimensionamento
<a name="flink-restart"></a>

Quando un'attività non riesce o quando si verifica un'operazione di dimensionamento, Flink tenta di rieseguire l'attività dall'ultimo checkpoint completato. L'esecuzione del processo di riavvio potrebbe richiedere un minuto o più, a seconda delle dimensioni dello stato del checkpoint e del numero di attività parallele. Durante il periodo di riavvio, le attività di backlog relative al processo possono accumularsi. Esistono tuttavia alcuni modi in cui Flink ottimizza la velocità di ripristino e riavvio dei grafici di esecuzione per migliorare la stabilità del processo.

Questa pagina descrive alcuni dei modi in cui Amazon EMR Flink può migliorare il tempo di riavvio del processo durante le operazioni di ripristino delle attività o dimensionamento.

**Topics**
+ [

## Ripristino locale delle attività
](#flink-restart-task-local)
+ [

## Checkpoint incrementale generico basato su log
](#flink-restart-log-check)
+ [

## Ripristino granulare
](#flink-restart-fine-grained)
+ [

## Meccanismo di riavvio combinato nel pianificatore adattivo
](#flink-restart-combined)

## Ripristino locale delle attività
<a name="flink-restart-task-local"></a>

**Nota**  
Il ripristino locale delle attività è supportato con Amazon EMR 6.0.0 e versioni successive.

Con i checkpoint Flink, ogni attività produce uno snapshot del suo stato che Flink scrive in un'archiviazione distribuita come Amazon S3. In caso di ripristino, le attività recuperano il loro stato dall'archiviazione distribuita. L'archiviazione distribuita offre tolleranza ai guasti e può ridistribuire lo stato durante il dimensionamento perché è accessibile a tutti i nodi.

Tuttavia, un archivio distribuito remoto presenta anche uno svantaggio: tutte le attività devono leggere il proprio stato da una posizione remota della rete. Ciò può comportare lunghi tempi di ripristino per stati di grandi dimensioni durante le operazioni di ripristino delle attività o di dimensionamento.

Il problema dei lunghi tempi di ripristino viene risolto mediante il *ripristino locale delle attività*. Le attività scrivono il loro stato su checkpoint in una memoria secondaria locale all'attività, ad esempio su un disco locale. Inoltre, memorizzano il loro stato nell'archiviazione principale, o su Amazon S3, come nel nostro caso. Durante il ripristino, il pianificatore programma le attività sullo stesso gestore delle attività in cui le attività erano state eseguite in precedenza, in modo che possano essere ripristinate dall'archivio di stato locale anziché essere lette dall'archivio di stato remoto. Per ulteriori informazioni, consulta l'argomento relativo al [ripristino locale delle attività](https://nightlies.apache.org/flink/flink-docs-master/docs/ops/state/large_state_tuning/#task-local-recovery) nella *documentazione di Apache Flink*.

I nostri test di benchmark con processi di esempio hanno dimostrato che il tempo di ripristino è stato ridotto da pochi minuti a pochi secondi con il ripristino locale delle attività abilitato.

Per abilitare il ripristino locale delle attività, imposta le seguenti configurazioni nel file `flink-conf.yaml`. Specifica il valore dell'intervallo di checkpoint in millisecondi.

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

## Checkpoint incrementale generico basato su log
<a name="flink-restart-log-check"></a>

**Nota**  
Il checkpoint incrementale generico basato su log è supportato con Amazon EMR 6.10.0 e versioni successive.

Il checkpoint incrementale generico basato su log è stato aggiunto in Flink 1.16 per migliorare la velocità dei checkpoint. Un intervallo di checkpoint più rapido spesso comporta una riduzione del lavoro di ripristino perché è necessario rielaborare un minor numero di eventi dopo il ripristino. Per ulteriori informazioni, consulta [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/) sul *blog di Apache Flink*.

Con processi di esempio, i nostri test di benchmark hanno dimostrato che il tempo di checkpoint si è ridotto da pochi minuti a pochi secondi con il checkpoint incrementale generico basato su log.

Per abilitare i checkpoint incrementali generici basati su log, imposta le seguenti configurazioni nel tuo file `flink-conf.yaml`. Specifica il valore dell'intervallo di checkpoint in millisecondi.

```
    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
```

## Ripristino granulare
<a name="flink-restart-fine-grained"></a>

**Nota**  
Il supporto per il ripristino granulare nel pianificatore predefinito è supportato con Amazon EMR 6.0.0 e versioni successive. Il supporto per il ripristino granulare nel pianificatore adattivo è disponibile con Amazon EMR 6.15.0 e versioni successive.

Quando un'attività riporta un errore durante l'esecuzione, Flink reimposta l'intero grafico di esecuzione e attiva una riesecuzione completa dall'ultimo checkpoint completato. Questa procedura è più costosa della semplice riesecuzione delle attività non riuscite. Il ripristino granulare riavvia solo il componente connesso alla pipeline dell'attività non riuscita. Nell'esempio seguente, il grafico del processo ha 5 vertici (da `A` a `E`). Tutte le connessioni tra i vertici avvengono tramite pipeline con distribuzione uniforme e il comando `parallelism.default` per il processo è impostato su `2`. 

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

Per questo esempio, le attività totali in esecuzione sono 10. La prima pipeline (da `a1` a `e1`) viene eseguita su un TaskManager (`TM1`) e la seconda pipeline (da `a2` a `e2`) viene eseguita su un altro TaskManager (`TM2`).

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

Esistono due componenti collegati tramite pipeline: `a1 → e1` e `a2 → e2`. Se `TM1` o `TM2` restituiscono un errore, l'errore influisce solo sulle 5 attività della pipeline in cui TaskManager era in esecuzione. La strategia di riavvio avvia solo il componente della pipeline interessato. 

Il ripristino granulare funziona solo con processi Flink perfettamente paralleli. Non è supportato con le operazioni `keyBy()` o `redistribute()`. Per ulteriori informazioni, consulta [FLIP-1: Fine Grained Recovery from Task Failures](https://cwiki.apache.org/confluence/display/FLINK/FLIP-1%3A+Fine+Grained+Recovery+from+Task+Failures) nel progetto Jira *Flink Improvement Proposal*.

Per abilitare il ripristino granulare, imposta le seguenti configurazioni nel file `flink-conf.yaml`.

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

## Meccanismo di riavvio combinato nel pianificatore adattivo
<a name="flink-restart-combined"></a>

**Nota**  
Il meccanismo di riavvio combinato nel pianificatore adattivo è supportato con Amazon EMR 6.15.0 e versioni successive.

Il pianificatore adattivo può regolare il parallelismo del processo in base agli slot disponibili. Riduce automaticamente il parallelismo se non sono disponibili abbastanza slot per soddisfare il parallelismo configurato del processo. Se diventano disponibili nuovi slot, il processo viene nuovamente dimensionato in base al parallelismo configurato del processo. Un pianificatore adattivo evita i tempi di inattività del processo quando le risorse disponibili non sono sufficienti. Questo è il pianificatore supportato per Autoscaler di Flink. Per questi motivi, con Flink di Amazon EMR consigliamo il pianificatore adattivo. Tuttavia, i pianificatori adattivi potrebbero eseguire più riavvii in un breve periodo di tempo, un riavvio per ogni nuova risorsa aggiunta. Questo potrebbe comportare un calo delle prestazioni nel processo.

Con Amazon EMR 6.15.0 e versioni successive, Flink dispone di un meccanismo di riavvio combinato nel pianificatore adattivo che apre una finestra di riavvio quando viene aggiunta la prima risorsa e quindi attende fino all'intervallo di finestra configurato di 1 minuto predefinito. Esegue un singolo riavvio quando sono disponibili risorse sufficienti per eseguire il processo con il parallelismo configurato o quando scade l'intervallo.

Con processi di esempio, i nostri test di benchmark hanno dimostrato che questa funzionalità elabora il 10% dei record in più rispetto al comportamento predefinito quando si utilizzano pianificatori adattivi e autoscaler di Flink.

Per abilitare il meccanismo di riavvio combinato, imposta le seguenti configurazioni nel file `flink-conf.yaml`.

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

# Utilizzo dei processi Flink di Zeppelin in Amazon EMR
<a name="flink-zeppelin"></a>

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

I rilasci 6.10.0 e successivi di Amazon EMR supportano l'integrazione [Apache Zeppelin](emr-zeppelin.md) con Apache Flink. Puoi inviare processi Flink in modo interattivo tramite i notebook Zeppelin. Con l'interprete Flink, puoi eseguire query Flink, definire lo streaming Flink e i processi in batch e visualizzare l'output all'interno dei notebook Zeppelin. L'interprete Flink è costruito sulla base della REST API di Flink. Ciò consente di accedere e manipolare i processi Flink dall'ambiente Zeppelin per eseguire l'elaborazione e l'analisi dei dati in tempo reale.

Ci sono quattro sottointerpreti nell'interprete Flink. Servono a scopi diversi, ma si trovano tutti nella JVM e condividono gli stessi punti di ingresso preconfigurati per Flink (`ExecutionEnviroment`, `StreamExecutionEnvironment`, `BatchTableEnvironment`, `StreamTableEnvironment`). Gli interpreti sono i seguenti:
+ `%flink` – Crea `ExecutionEnvironment`, `StreamExecutionEnvironment`, `BatchTableEnvironment` `StreamTableEnvironment` e fornisce un ambiente Scala
+ `%flink.pyflink` – Fornisce un ambiente Python
+ `%flink.ssql` – Fornisce un ambiente SQL in streaming
+ `%flink.bsql` – Fornisce un ambiente SQL in batch

## Prerequisiti
<a name="flink-zeppelin-prerequisites"></a>
+ L'integrazione di Zeppelin con Flink è supportata per i cluster creati con Amazon EMR 6.10.0 e versioni successive.
+ Per visualizzare le interfacce Web ospitate sui cluster EMR come richiesto per questi passaggi, è necessario configurare un tunnel SSH per consentire l'accesso in entrata. Per ulteriori informazioni, consulta la sezione [Configurazione delle impostazioni proxy per visualizzare siti Web ospitati sul nodo primario](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-proxy.html).

## Configurazione di Zeppelin-Flink su un cluster EMR
<a name="flink-zeppelin-configure"></a>

Utilizza i seguenti passaggi per configurare Apache Flink su Apache Zeppelin per l'esecuzione su un cluster EMR:

1. Crea un nuovo cluster dalla console Amazon EMR. Seleziona emr-6.10.0 o versioni successive per il rilascio di Amazon EMR. Quindi, scegli di personalizzare il tuo bundle di applicazioni con l'opzione Personalizzato. Includi almeno Flink, Hadoop e Zeppelin nel tuo bundle.  
![\[Nella console Amazon EMR, personalizza il tuo bundle di applicazioni con l'opzione Personalizzato. Includi almeno Flink, Hadoop e Zeppelin nel tuo bundle\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/images/emr-flink-zeppelin-console.png)

1. Crea il resto del cluster con le impostazioni che preferisci.

1. Una volta che il cluster è in esecuzione, selezionalo nella console per visualizzarne i dettagli e apri la scheda Applicazioni. Seleziona Zeppelin dalla sezione Interfacce utente dell'applicazione per aprire l'interfaccia Web di Zeppelin. Assicurati di aver configurato l'accesso all'interfaccia Web di Zeppelin con un tunnel SSH verso il nodo primario e una connessione proxy, come descritto in [Prerequisiti](#flink-zeppelin-prerequisites).  
![\[Nell'interfaccia Web di Zeppelin, puoi importare e creare nuovi notebook.\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/images/welcome-to-zeppelin.png)

1. Ora puoi creare una nuova nota in un notebook Zeppelin con Flink come interprete predefinito.  
![\[Puoi creare una nuova nota in un notebook Zeppelin con Flink come interprete predefinito.\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/images/emr-flink-zeppelin-create-notebook.png)

1. Fai riferimento ai seguenti esempi di codice che dimostrano come eseguire i processi Flink da un notebook Zeppelin.

## Esecuzione dei processi Flink con Zeppelin-Flink su un cluster EMR
<a name="flink-zeppelin-run-jobs"></a>
+ Esempio 1, Scala in Flink

  a) WordCount Esempio di Batch (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 Esempio di 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()
  ```  
![\[Ad esempio, è possibile eseguire WordCount lavori in batch WordCount e in streaming da un notebook Zeppelin.\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/images/streaming-wordcount-example.png)
+ Esempio 2, Streaming SQL in Flink

  ```
  %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;
  ```  
![\[Questo esempio mostra come eseguire un processo Streaming SQL in Flink.\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/images/flink-streaming-sql.png)
+ Esempio 3, Pyflink. Tieni presente che devi caricare il tuo file di testo di esempio denominato nel tuo `word.txt` bucket 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. Scegli **FLINK JOB** nell'interfaccia utente di Zeppelin per accedere e visualizzare l'interfaccia utente Web di Flink.  
![\[Flink code snippet for word count with output showing counts for "hello", "flink", "hadoop", and "world".\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/images/batch-wordcount-example.png)

1. Scegliendo **FLINK JOB** si accede alla console Web di Flink in un'altra scheda del browser.  
![\[Scegliendo FLINK JOB si apre la console Web di Flink in un'altra scheda del browser.\]](http://docs.aws.amazon.com/it_it/emr/latest/ReleaseGuide/images/flink-web-console.png)

# Cronologia dei rilasci di Flink
<a name="Flink-release-history"></a>

La tabella seguente indica la versione di Flink inclusa in ogni rilascio di Amazon EMR e i componenti installati con l'applicazione. Per le versioni dei componenti in ogni rilascio, consulta la sezione Versione componente per il rilascio in [Versioni del rilascio di Amazon EMR 7.x](emr-release-7x.md), [Versioni di rilascio di Amazon EMR 6.x](emr-release-6x.md) o [Versioni del rilascio di Amazon EMR 5.x](emr-release-5x.md).


**Informazioni sulla versione di Flink**  

| Etichetta di rilascio di Amazon EMR | Versione di Flink | Componenti installati con 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 | 
| emr-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 | 

# Note di rilascio di Flink per versione
<a name="Flink-release-history-versions"></a>

Consultate le seguenti sezioni per le note di rilascio complete.

# Amazon EMR 7.10.0 - Note sulla versione di Flink
<a name="Flink-release-history-7100"></a>

**Amazon EMR 7.10.0 - Modifiche a Flink**


| Tipo | Description | 
| --- | --- | 
|  Nuova caratteristica  |  A partire dalla versione 7.10.0 di Amazon EMR, puoi abilitare i connettori Kafka e Kinesis Flink più facilmente utilizzando le impostazioni di configurazione. Aggiungi uno `kafka.enabled: true` o l'altro `kinesis.enabled: true` nella `flink-conf` classificazione durante la creazione del cluster per configurare automaticamente il rispettivo connettore. Questo approccio semplificato elimina i passaggi di configurazione manuale che erano precedentemente richiesti.  | 

# Amazon EMR 7.9.0 - Note sulla versione di Flink
<a name="Flink-release-history-790"></a>

**Amazon EMR 7.9.0 - Modifiche a Flink**


| Tipo | Description | 
| --- | --- | 
|  Nuova caratteristica  |  A partire da Amazon EMR 7.9.0, Apache Flink fornisce out-of-the-box supporto per i formati di file Avro, Parquet e ORC. Puoi utilizzare questi formati direttamente con qualsiasi API Flink (DataStream, Table o SQL) senza richiedere alcuna configurazione aggiuntiva.  | 
|  Nuova caratteristica  |  A partire dalla versione 7.9.0 di Amazon EMR, puoi abilitare più facilmente i cataloghi di dati Hive metastore o AWS Glue utilizzando le impostazioni di configurazione. Aggiungi una `hive.enabled: true` o `glue.enabled: true` l'altra `flink-conf` classificazione durante la creazione del cluster per configurare automaticamente il rispettivo catalogo di dati. Questo approccio semplificato elimina le fasi di configurazione manuale che erano precedentemente richieste.  | 

# Amazon EMR 7.8.0 - Note sulla versione di Flink
<a name="Flink-release-history-780"></a>

**Configurazione**: EMR Flink funziona immediatamente con S3A in tutte le regioni/partizioni. AWS 

# Amazon EMR 7.7.0 - Note sulla versione di Flink
<a name="Flink-release-history-770"></a>
+ La shell SQL di Flink può essere richiamata facilmente con il comando che è collegato simbolicamente a `flink-sql-client` `/usr/lib/flink/bin/sql-client.sh`

# Amazon EMR 7.6.0 - Note sulla versione di Flink
<a name="Flink-release-history-760"></a>

## Amazon EMR 7.6.0 - Caratteristiche di Flink
<a name="Flink-release-history-760-features"></a>
+ Nessuna modifica per la versione.

# Amazon EMR 7.5.0 - Note sulla versione di Flink
<a name="Flink-release-history-750"></a>


| Tipo | Description | 
| --- | --- | 
|  Funzionalità  |  È stato aggiunto il supporto per l'esecuzione di lavori Flink con un jar remoto.  | 
|  Miglioramenti  |  Rendi sicuro il thread di esclusione e inclusione dei vertici.  | 

## Amazon EMR 7.5.0 - Caratteristiche di Flink
<a name="Flink-release-history-750-features"></a>
+ A partire da Amazon EMR 7.5.0, puoi specificare una posizione Amazon S3 come percorso JAR quando usi i comandi CLI e `run` `run-application` Apache Flink. Quando fornisci un percorso S3, EMR scarica automaticamente il file JAR da Amazon S3 allo storage EBS del cluster. Ogni volta che si specifica lo stesso file JAR, EMR scarica la versione più recente da Amazon S3 anziché riutilizzare il file JAR esistente nel cluster. 
+ A partire da Amazon EMR 7.5.0, i clienti possono passare il percorso remoto (una posizione S3) come percorso JAR con i comandi CLI `run` `run-application` Flink. Il JAR viene quindi trasferito automaticamente dall'archivio S3 allo storage EBS del cluster. Se viene fornito nuovamente lo stesso JAR, scarica quello più recente da S3 e non riutilizza il JAR esistente nel cluster.

# Amazon EMR 7.4.0 - Note sulla versione di Flink
<a name="Flink-release-history-740"></a>


| Tipo | Description | 
| --- | --- | 
|  Upgrade  |  La versione di Flink è stata aggiornata alla 1.19.1.  | 

# Amazon EMR 7.3.0 - Note sulla versione di Flink
<a name="Flink-release-history-730"></a>
+ Per impostazione predefinita, i cluster con crittografia in transito abilitata tramite la configurazione di sicurezza utilizzeranno TLS 1.3 per la comunicazione interna tra i processi Flink, l'endpoint REST di Job Manager e il Flink Job History Server.

# Amazon EMR 7.2.0 - Note sulla versione di Flink
<a name="Flink-release-history-720"></a>


| Tipo | Description | 
| --- | --- | 
|  Miglioramenti  |  Supporta l'aggiunta di etichette personalizzate al servizio Kubernetes per job Flink tramite configurazione. `kubernetes.service.labels`  | 