

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

[Apache Flink](https://flink.apache.org/) adalah mesin dataflow streaming yang dapat Anda gunakan untuk menjalankan proses pengaliran waktu nyata pada sumber data throughput tinggi. Flink mendukung semantik waktu acara untuk out-of-order acara, semantik persis sekali, kontrol tekanan balik, dan dioptimalkan untuk menulis aplikasi streaming dan APIs batch.

Selain itu, Flink memiliki konektor untuk sumber data pihak ketiga, seperti berikut:
+ [Amazon Kinesis Data Streams](https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/connectors/kinesis.html)
+ [Apache Kafka](https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/connectors/kafka.html)
+ [Konektor Flink Elasticsearch](https://ci.apache.org/projects/flink/flink-docs-master/apis/streaming/connectors/elasticsearch2.html)
+ [Twitter Streaming API](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 mendukung Flink sebagai aplikasi YARN sehingga Anda dapat mengelola sumber daya bersama dengan aplikasi lain dalam cluster. Flink-on-YARNmemungkinkan Anda mengirimkan pekerjaan Flink sementara, atau Anda dapat membuat klaster berjalan lama yang menerima banyak pekerjaan dan mengalokasikan sumber daya sesuai dengan reservasi YARN secara keseluruhan.

Livy termasuk dalam rilis Amazon EMR versi 5.1.0 dan versi yang lebih tinggi.

**catatan**  
Support untuk `FlinkKinesisConsumer` kelas ditambahkan di Amazon EMR rilis versi 5.2.1.

Tabel berikut mencantumkan versi Flink yang termasuk dalam rilis terbaru seri Amazon EMR 7.x, bersama dengan komponen yang dipasang Amazon EMR dengan Flink.

Untuk versi komponen yang diinstal dengan Flink dalam rilis ini, lihat Rilis Versi Komponen [7.12.0](emr-7120-release.md).


**Informasi versi Flink untuk emr-7.12.0**  

| Label Rilis Amazon EMR | Versi Flink | Komponen Dipasang Dengan 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 | 

Tabel berikut mencantumkan versi Flink yang termasuk dalam rilis terbaru seri Amazon EMR 6.x, bersama dengan komponen yang dipasang Amazon EMR dengan Flink.

Untuk versi komponen yang diinstal dengan Flink dalam rilis ini, lihat Rilis Versi Komponen [6.15.0](emr-6150-release.md).


**Informasi versi Flink untuk emr-6.15.0**  

| Label Rilis Amazon EMR | Versi Flink | Komponen Dipasang Dengan 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 | 

Tabel berikut mencantumkan versi Flink yang termasuk dalam rilis terbaru seri Amazon EMR 5.x, bersama dengan komponen yang dipasang Amazon EMR dengan Flink.

Untuk versi komponen yang diinstal dengan Flink dalam rilis ini, lihat [Rilis 5.36.2](emr-5362-release.md) Versi Komponen.


**Informasi versi Flink untuk emr-5.36.2**  

| Label Rilis Amazon EMR | Versi Flink | Komponen Dipasang Dengan 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**
+ [

# Membuat klaster dengan Flink
](flink-create-cluster.md)
+ [

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

# Bekerja dengan tugas Flink di Amazon EMR
](flink-jobs.md)
+ [

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

# Menemukan antarmuka web Flink
](flink-web-interface.md)
+ [

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

# Mengoptimalkan waktu restart pekerjaan untuk pemulihan tugas dan operasi penskalaan
](flink-restart.md)
+ [

# Bekerja dengan pekerjaan Flink dari Zeppelin di Amazon EMR
](flink-zeppelin.md)
+ [

# Riwayat rilis Flink
](Flink-release-history.md)

# Membuat klaster dengan Flink
<a name="flink-create-cluster"></a>

Anda dapat meluncurkan cluster dengan Konsol Manajemen AWS, AWS CLI, atau AWS SDK.<a name="emr-flink-create-console"></a>

**Untuk meluncurkan cluster dengan Flink diinstal dari konsol**

1. [Buka konsol Amazon EMR di https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr/)

1. Pilih **Buat klaster**, **Buka opsi lanjutan**.

1.  Untuk **Konfigurasi Perangkat Lunak**, pilih **EMR Rilis emr-5.1.0** atau yang lebih baru.

1.  Pilih **Flink** sebagai aplikasi, bersama dengan yang lain untuk dipasang.

1.  Pilih opsi lain yang diperlukan dan pilih **Buat klaster**.

**Untuk meluncurkan cluster dengan Flink dari AWS CLI**
+ Buat klaster dengan perintah berikut:

  ```
  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
  ```
**catatan**  
Karakter lanjutan baris Linux (\$1) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).

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

## Konfigurasikan Flink dengan Hive Metastore dan Glue Catalog
<a name="flink-configure-hive"></a>

Amazon EMR merilis 6.9.0 dan lebih tinggi mendukung Hive Metastore dan Glue Catalog dengan konektor Apache AWS Flink ke Hive. Bagian ini menguraikan langkah-langkah yang diperlukan untuk mengkonfigurasi [AWS Glue Catalog](#flink-configure-hive-glue) dan [Hive Metastore](#flink-configure-hive-metastore) dengan Flink.

**Topics**
+ [

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

### Gunakan Katalog Data AWS Glue
](#flink-configure-hive-glue)

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

1. ****Buat cluster EMR dengan rilis 6.9.0 atau lebih tinggi dan setidaknya dua aplikasi: Hive dan Flink.**** 

1. Gunakan [script runner](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-commandrunner.html) untuk menjalankan script berikut sebagai fungsi langkah:

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

### Gunakan Katalog Data AWS Glue
<a name="flink-configure-hive-glue"></a>

1. ****Buat cluster EMR dengan rilis 6.9.0 atau lebih tinggi dan setidaknya dua aplikasi: Hive dan Flink.**** 

1. Pilih **Gunakan untuk metadata tabel Hive** di pengaturan AWS Glue Data Catalog untuk mengaktifkan Data Catalog di cluster.

1. Gunakan [script runner](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-commandrunner.html) untuk menjalankan skrip berikut sebagai fungsi langkah: [Jalankan perintah dan skrip di klaster EMR Amazon](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/id_id/emr/latest/ReleaseGuide/images/hive.png)

## Konfigurasikan Flink dengan file konfigurasi
<a name="flink-configure-config"></a>

Anda dapat menggunakan API konfigurasi EMR Amazon untuk mengonfigurasi Flink dengan file konfigurasi. File yang dapat dikonfigurasi dalam API adalah:
+ `flink-conf.yaml`
+ `log4j.properties`
+ `flink-log4j-session`
+ `log4j-cli.properties`

File konfigurasi utama untuk Flink adalah`flink-conf.yaml`. 

**Untuk mengkonfigurasi jumlah slot tugas yang digunakan untuk Flink dari AWS CLI**

1. Buat file, `configurations.json`, dengan konten berikut:

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

1. Berikutnya, buat sebuah klaster dengan konfigurasi berikut:

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

**catatan**  
Anda juga dapat mengubah beberapa konfigurasi dengan Flink API. Untuk informasi lebih lanjut, lihat [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) di dokumentasi Flink.  
Dengan Amazon EMR versi 5.21.0 dan yang lebih baru, Anda dapat mengganti konfigurasi klaster dan menentukan klasifikasi konfigurasi tambahan untuk setiap grup instans dalam klaster berjalan. Anda melakukannya dengan menggunakan konsol EMR Amazon, AWS Command Line Interface (AWS CLI), atau SDK AWS . Untuk informasi selengkapnya, lihat [Menyediakan Konfigurasi untuk Grup Instans dalam Klaster Berjalan](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html).

### Pilihan paralelisme
<a name="flink-parallelism"></a>

Sebagai pemilik aplikasi Anda, Anda paling tahu sumber daya apa yang harus ditetapkan ke tugas dalam Flink. Untuk contoh dalam dokumentasi ini, gunakan jumlah tugas yang sama dengan instance tugas yang Anda gunakan untuk aplikasi. [Kami biasanya merekomendasikan ini untuk tingkat awal paralelisme, tetapi Anda juga dapat meningkatkan granularitas paralelisme dengan slot tugas, yang umumnya tidak boleh melebihi jumlah inti virtual per instance.](https://aws.amazon.com/ec2/virtualcores/) Untuk informasi selengkapnya tentang arsitektur Flink, lihat [https://ci.apache.org/projects/flink/flink-docs-master/concepts/index.html](https://ci.apache.org/projects/flink/flink-docs-master/concepts/index.html) dalam dokumentasi Flink.

## Mengkonfigurasi Flink pada cluster EMR dengan beberapa node primer
<a name="flink-multi-master"></a>

Flink tetap tersedia selama proses failover node primer di cluster EMR Amazon dengan beberapa node primer. JobManager Dimulai dengan Amazon EMR 5.28.0, ketersediaan JobManager tinggi juga diaktifkan secara otomatis. Tidak ada konfigurasi manual yang diperlukan.

Dengan Amazon EMR versi 5.27.0 atau sebelumnya, ini JobManager adalah satu titik kegagalan. Ketika JobManager gagal, ia kehilangan semua status pekerjaan dan tidak akan melanjutkan pekerjaan yang sedang berjalan. Anda dapat mengaktifkan ketersediaan JobManager tinggi dengan mengonfigurasi jumlah upaya aplikasi, pos pemeriksaan, dan mengaktifkan ZooKeeper sebagai penyimpanan status untuk Flink, seperti yang ditunjukkan contoh berikut:

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

Anda harus mengonfigurasi kedua upaya master aplikasi maksimum untuk YARN dan upaya aplikasi untuk Flink. Untuk informasi lebih lanjut, lihat [Konfigurasi ketersediaan tinggi klaster YARN](https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/jobmanager_high_availability.html#maximum-application-master-attempts-yarn-sitexml). Anda mungkin juga ingin mengonfigurasi pos pemeriksaan Flink untuk membuat restart JobManager memulihkan pekerjaan yang berjalan dari pos pemeriksaan yang telah diselesaikan sebelumnya. Untuk informasi lebih lanjut, lihat [Titik pemeriksaan Flink](https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/stream/state/checkpointing.html).

## Mengonfigurasi ukuran proses memori
<a name="flink-process-memory"></a>

Untuk versi EMR Amazon yang menggunakan Flink 1.11.x, Anda harus mengonfigurasi ukuran proses memori total untuk () dan JobManager (`jobmanager.memory.process.size`) di. TaskManager `taskmanager.memory.process.size` `flink-conf.yaml` Anda dapat mengatur nilai-nilai ini dengan mengonfigurasi klaster dengan API konfigurasi atau secara manual tidak berkomentar pada bidang ini melalui SSH. Flink memberikan nilai default berikut.
+ `jobmanager.memory.process.size`: 1600m
+ `taskmanager.memory.process.size`: 1728m

Untuk mengecualikan metaspace dan overhead JVM, gunakan total ukuran memori Flink () alih-alih. `taskmanager.memory.flink.size` `taskmanager.memory.process.size` Nilai default untuk `taskmanager.memory.process.size` adalah 1280m. Ini tidak direkomendasikan untuk mengatur `taskmanager.memory.process.size` dan `taskmanager.memory.process.size`.

Semua versi EMR Amazon yang menggunakan Flink 1.12.0 dan yang lebih baru memiliki nilai default yang tercantum dalam kumpulan sumber terbuka untuk Flink sebagai nilai default di Amazon EMR, jadi Anda tidak perlu mengonfigurasinya sendiri.

## Mengonfigurasi ukuran file keluaran log
<a name="flink-log-output"></a>

Kontainer aplikasi Flink membuat dan menulis hingga tiga jenis file log: `.out` file, `.log` file, dan `.err` file. Hanya `.err` file yang dimampatkan dan dikeluarkan dari sistem fail, sementara `.log` dan `.out` file log tetap di sistem file. Untuk memastikan file keluaran ini tetap dapat dikelola dan cluster tetap stabil, Anda dapat mengonfigurasi rotasi log `log4j.properties` untuk mengatur jumlah file maksimum dan membatasi ukurannya.

**Amazon EMR versi 5.30.0 dan yang lebih baru**

Dimulai dengan Amazon EMR 5.30.0, Flink menggunakan log4j2 logging framework dengan nama `flink-log4j.` klasifikasi konfigurasi Contoh konfigurasi konfigurasi Konfigurasi berikut menunjukkan format log4j2.

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

**Amazon EMR versi 5.29.0 dan sebelumnya**

Dengan Amazon EMR versi 5.29.0 dan sebelumnya, Flink menggunakan kerangka log4j logging. Contoh konfigurasi berikut menunjukkan format log4j.

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

## Konfigurasikan Flink untuk dijalankan dengan Java 11
<a name="flink-configure-java11"></a>

Amazon EMR merilis 6.12.0 dan yang lebih tinggi memberikan dukungan runtime Java 11 untuk Flink. Bagian berikut menjelaskan cara mengkonfigurasi cluster untuk menyediakan dukungan runtime Java 11 untuk Flink.

**Topics**
+ [

### Konfigurasikan Flink untuk Java 11 saat Anda membuat cluster
](#flink-configure-java11-create)
+ [

### Konfigurasikan Flink untuk Java 11 pada cluster yang sedang berjalan
](#flink-configure-java11-update)
+ [

### Konfirmasikan runtime Java untuk Flink di cluster yang sedang berjalan
](#flink-configure-java11-confirm)

### Konfigurasikan Flink untuk Java 11 saat Anda membuat cluster
<a name="flink-configure-java11-create"></a>

Gunakan langkah-langkah berikut untuk membuat cluster EMR dengan runtime Flink dan Java 11. File konfigurasi tempat Anda menambahkan dukungan runtime Java 11 adalah`flink-conf.yaml`.

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

**Untuk membuat cluster dengan runtime Flink dan Java 11 di konsol**

1. [Masuk ke Konsol Manajemen AWS, dan buka konsol EMR Amazon di https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. **Pilih **Cluster** di bawah **EMR pada** EC2 di panel navigasi, lalu Buat cluster.**

1. Pilih Amazon EMR rilis 6.12.0 atau lebih tinggi, dan pilih untuk menginstal aplikasi Flink. Pilih aplikasi lain yang ingin Anda instal di cluster Anda.

1. Lanjutkan menyiapkan cluster Anda. Di bagian **Pengaturan Perangkat Lunak** opsional, gunakan opsi **Enter konfigurasi** default dan masukkan konfigurasi berikut:

   ```
   [
       {
         "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. Lanjutkan untuk mengatur dan meluncurkan cluster Anda.

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

**Untuk membuat cluster dengan runtime Flink dan Java 11 dari CLI**

1. Buat file konfigurasi `configurations.json` yang mengkonfigurasi Flink untuk menggunakan 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. Dari AWS CLI, buat cluster EMR baru dengan Amazon EMR rilis 6.12.0 atau lebih tinggi, dan instal aplikasi Flink, seperti yang ditunjukkan pada contoh berikut:

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

------

### Konfigurasikan Flink untuk Java 11 pada cluster yang sedang berjalan
<a name="flink-configure-java11-update"></a>

Gunakan langkah-langkah berikut untuk memperbarui cluster EMR yang sedang berjalan dengan runtime Flink dan Java 11. File konfigurasi tempat Anda menambahkan dukungan runtime Java 11 adalah`flink-conf.yaml`.

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

**Untuk memperbarui cluster yang sedang berjalan dengan runtime Flink dan Java 11 di konsol**

1. [Masuk ke Konsol Manajemen AWS, dan buka konsol EMR Amazon di https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. Pilih **Cluster** di bawah **EMR pada** EC2 di panel navigasi, lalu pilih cluster yang ingin Anda perbarui.
**catatan**  
Cluster harus menggunakan Amazon EMR rilis 6.12.0 atau lebih tinggi untuk mendukung Java 11.

1. Pilih tab **Konfigurasi**.

1. Di bagian **Konfigurasi grup instans**, pilih grup **Running** instance yang ingin Anda perbarui, lalu pilih **Konfigurasi ulang** dari menu tindakan daftar.

1. Konfigurasikan ulang grup instance dengan opsi **Edit atribut** sebagai berikut. Pilih **Tambahkan konfigurasi baru** setelah masing-masing.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/flink-configure.html)

1. Pilih **Simpan perubahan** untuk menambahkan konfigurasi.

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

**Untuk memperbarui cluster yang sedang berjalan untuk menggunakan runtime Flink dan Java 11 dari CLI**

Gunakan perintah `modify-instance-groups` untuk menentukan konfigurasi baru untuk grup instans di klaster yang sedang berjalan.

1. Pertama, buat file konfigurasi `configurations.json` yang mengkonfigurasi Flink untuk menggunakan Java 11. Dalam contoh berikut, ganti *ig-1xxxxxxx9* dengan ID untuk grup instance yang ingin Anda konfigurasi ulang. Simpan file di direktori yang sama tempat Anda akan menjalankan `modify-instance-groups` perintah.

   ```
   [
      {
         "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. Dari AWS CLI, jalankan perintah berikut. Ganti ID untuk grup instance yang ingin Anda konfigurasi ulang:

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

------

### Konfirmasikan runtime Java untuk Flink di cluster yang sedang berjalan
<a name="flink-configure-java11-confirm"></a>

Untuk menentukan runtime Java untuk cluster yang sedang berjalan, masuk ke node utama dengan SSH seperti yang dijelaskan dalam [Connect to the primary node with](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) SSH. Kemudian jalankan perintah berikut:

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

`ps`Perintah dengan `-ef` opsi mencantumkan semua proses yang berjalan pada sistem. Anda dapat memfilter output itu `grep` untuk menemukan sebutan string`flink`. Tinjau output untuk nilai Java Runtime Environment (JRE),. `jre-XX` Dalam output berikut, `jre-11` menunjukkan bahwa Java 11 diambil saat runtime untuk 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.
```

Atau, [masuk ke node utama dengan SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) dan mulai sesi Flink YARN dengan perintah. `flink-yarn-session -d` Output menunjukkan Java Virtual Machine (JVM) untuk Flink, `java-11-amazon-corretto` dalam contoh berikut:

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

# Bekerja dengan tugas Flink di Amazon EMR
<a name="flink-jobs"></a>

Ada beberapa cara untuk berinteraksi dengan Flink di Amazon EMR: melalui konsol, antarmuka Flink yang ditemukan di ResourceManager UI Pelacakan, dan di baris perintah. Anda dapat mengirimkan file JAR ke aplikasi Flink dengan salah satu dari ini. Setelah mengirimkan file JAR, itu menjadi pekerjaan yang dikelola oleh Flink JobManager. JobManager Ini terletak di node YARN yang menghosting daemon Master Aplikasi sesi Flink.

Anda dapat menjalankan aplikasi Flink sebagai tugas YARN pada klaster yang berjalan lama atau pada klaster sementara. Pada klaster yang berjalan lama, Anda dapat mengirimkan beberapa tugas Flink untuk satu klaster Flink yang berjalan di Amazon EMR. Jika Anda menjalankan tugas Flink di klaster sementara, klaster Amazon EMR Anda hanya ada untuk waktu yang diperlukan saat menjalankan aplikasi Flink, sehingga Anda hanya dikenakan biaya untuk sumber daya dan waktu yang digunakan. Anda dapat mengirimkan pekerjaan Flink dengan operasi Amazon `AddSteps` EMR API, sebagai argumen langkah untuk `RunJobFlow` operasi, dan melalui AWS CLI `add-steps` perintah atau. `create-cluster`

## Mulai aplikasi Flink YARN sebagai langkah pada klaster berjalan lama
<a name="flink-add-step"></a>

Untuk memulai aplikasi Flink yang beberapa klien dapat mengirimkan pekerjaan melalui operasi YARN API, Anda perlu membuat klaster atau menambahkan aplikasi Flink klaster yang ada. Untuk petunjuk tentang cara membuat klaster baru, lihat [Membuat klaster dengan Flink](flink-create-cluster.md). Untuk memulai sesi YARN pada klaster yang ada, gunakan langkah-langkah berikut dari konsol, AWS CLI, atau Java SDK.

**catatan**  
Parameter `flink-yarn-session` perintah ditambahkan di Amazon EMR versi 5.5.0 sebagai pembungkus untuk `yarn-session.sh` skrip dalam menyederhanakan eksekusi. Jika Anda menggunakan Amazon EMR versi sebelumnya, ganti `bash -c "/usr/lib/flink/bin/yarn-session.sh -d"` untuk **Pendapat** di konsol tersebut atau `Args`. di AWS CLI perintah.

**Untuk mengirimkan pekerjaan Flink pada cluster yang ada dari konsol**

Kirim sesi Flink dengan `flink-yarn-session` perintah di cluster yang ada.

1. [Buka konsol EMR Amazon di https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr/)

1. Dalam daftar klaster, pilih klaster Anda yang sebelumnya diluncurkan.

1. Di halaman rincian klaster, pilih **Langkah**, **Tambahkan Langkah**.

1. Gunakan pedoman yang mengikuti untuk memasukkan parameter, lalu pilih **Tambah**.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/flink-jobs.html)

**Untuk mengirimkan pekerjaan Flink pada cluster yang ada dengan AWS CLI**
+ Gunakan `add-steps` perintah untuk menambahkan pekerjaan Flink ke cluster yang berjalan lama. Contoh perintah berikut menentukan `Args="flink-yarn-session", "-d"` untuk memulai sesi Flink dalam cluster YARN Anda dalam status terpisah (). `-d` Lihat [Penyiapan YARN](https://ci.apache.org/projects/flink/flink-docs-release-1.3/setup/yarn_setup.html#flink-yarn-session) dalam dokumentasi Flink terbaru untuk rincian argumen.

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

## Kirim tugas untuk aplikasi Flink yang ada pada klaster berjalan lama
<a name="flink-submit-work"></a>

Jika Anda sudah memiliki aplikasi Flink yang ada pada klaster yang berjalan lama, Anda dapat menentukan ID aplikasi Flink klaster untuk mengirimkan pekerjaan ke sana. Untuk mendapatkan ID aplikasi, jalankan `yarn application -list` pada AWS CLI atau melalui operasi [YarnClient](https://hadoop.apache.org/docs/current/api/org/apache/hadoop/yarn/client/api/YarnClient.html)API:

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

ID aplikasi untuk sesi Flink ini adalah`application_1473169569237_0002`, yang dapat Anda gunakan untuk mengirimkan pekerjaan ke aplikasi dari AWS CLI atau SDK.

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

## Kirim tugas Flink sementara
<a name="flink-transient-job"></a>

Contoh berikut meluncurkan klaster sementara yang menjalankan tugas Flink dan kemudian berakhir pada penyelesaian.

**Example SDK for 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**  
Gunakan `create-cluster` subperintah untuk membuat sebuah klaster sementara yang berakhir ketika tugas Flink selesai:  

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

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

Shell Flink Scala untuk cluster EMR hanya dikonfigurasi untuk memulai sesi YARN baru. Anda dapat menggunakan shell Scala dengan mengikuti prosedur di bawah ini.

**Gunakan shell Flink Scala pada node utama**

1. Masuk ke node primer dengan SSH seperti yang dijelaskan dalam [Connect to the primary node dengan SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html).

1. Ketik berikut ini untuk memulai shell:

   Di Amazon EMR versi 5.5.0 dan yang lebih baru, Anda dapat menggunakan perintah berikut untuk memulai cluster Yarn untuk Scala Shell dengan satu. TaskManager

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

   Dalam versi sebelumnya dari Amazon EMR, gunakan:

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

   Ini memulai shell Flink Scala agar Anda dapat secara interaktif menggunakan Flink. Sama seperti dengan antarmuka lain dan pilihan, Anda dapat menskalakan `-n` nilai opsi yang digunakan dalam contoh berdasarkan jumlah tugas yang ingin Anda jalankan dari shell.

   Untuk informasi lebih lanjut, lihat [REPL Scala](https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/scala_shell.html) dalam dokumentasi Apache Flink resmi.

# Menemukan antarmuka web Flink
<a name="flink-web-interface"></a>

Master Aplikasi milik aplikasi Flink menghosting antarmuka web Flink. Ini adalah cara alternatif untuk mengirimkan JAR sebagai pekerjaan atau untuk melihat status pekerjaan lain saat ini. Antarmuka web Flink aktif selama Anda memiliki sesi Flink berjalan. Jika Anda memiliki pekerjaan YARN yang sudah berjalan lama yang sudah aktif, Anda dapat mengikuti instruksi di [Connect to the primary node with SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) topic di Amazon *EMR Management Guide* untuk terhubung ke YARN. ResourceManager Misalnya, jika Anda telah menyiapkan terowongan SSH dan telah mengaktifkan proxy di browser Anda, Anda memilih ResourceManager koneksi di bawah Koneksi di halaman **detail** klaster EMR Anda.

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


Setelah Anda menemukan ResourceManager, pilih aplikasi YARN yang menghosting sesi Flink. Pilih tautan di kolom **Melacak UI**. 

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


Dalam antarmuka web Flink, Anda dapat melihat konfigurasi, mengirimkan JAR kustom Anda sendiri sebagai tugas, atau memantau tugas berlangsung. 

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


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

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

*Amazon EMR merilis 6.15.0 dan dukungan yang lebih tinggi Flink autoscaler.* Fungsionalitas job autoscaler mengumpulkan metrik dari menjalankan pekerjaan streaming Flink, dan secara otomatis menskalakan verteks pekerjaan individual. Ini mengurangi tekanan balik dan memenuhi target pemanfaatan yang Anda tetapkan.

Untuk informasi selengkapnya, lihat bagian [Autoscaler](https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main/docs/custom-resource/autoscaler/) dari dokumentasi Operator *Apache Flink* Kubernetes.

## Pertimbangan-pertimbangan
<a name="flink-autoscaler-considerations"></a>
+ Flink autoscaler didukung dengan Amazon EMR 6.15.0 dan lebih tinggi.
+ Flink autoscaler hanya didukung untuk pekerjaan streaming.
+ Hanya penjadwal adaptif yang didukung. Penjadwal default tidak didukung.
+ Kami menyarankan Anda mengaktifkan penskalaan klaster untuk memungkinkan penyediaan sumber daya dinamis. Penskalaan terkelola Amazon EMR lebih disukai `karena evaluasi metrik terjadi setiap 5-10 detik. Pada interval ini, klaster Anda dapat lebih mudah menyesuaikan diri dengan perubahan sumber daya cluster yang diperlukan.

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

Gunakan langkah-langkah berikut untuk mengaktifkan autoscaler Flink saat Anda membuat Amazon EMR di kluster EC2.

1. Di konsol EMR Amazon, buat cluster EMR baru:

   1. Pilih rilis EMR Amazon `emr-6.15.0` atau yang lebih tinggi. Pilih bundel aplikasi **Flink**, dan pilih aplikasi lain yang mungkin ingin Anda sertakan di cluster Anda.  
![\[Application bundle options for Amazon EMRklaster, with Flink highlighted and selected.\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/images/emr-flink-cluster-create.png)

   1. Untuk opsi **penskalaan dan penyediaan Cluster, pilih **Gunakan** penskalaan** yang dikelola EMR.  
![\[Klaster scaling options: manual, EMR-managed (selected), or custom automatic scaling.\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/images/emr-flink-cluster-managedscaling.png)

1. Di bagian **Pengaturan perangkat lunak**, masukkan konfigurasi berikut untuk mengaktifkan Flink autoscaler. Untuk skenario pengujian, atur interval keputusan, interval jendela metrik, dan interval stabilisasi ke nilai yang lebih rendah sehingga pekerjaan segera membuat keputusan penskalaan untuk verifikasi yang lebih mudah.

   ```
   [
     {
       "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. Pilih atau konfigurasikan pengaturan lain sesuai keinginan Anda, dan buat cluster berkemampuan autoscaler Flink.

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

Bagian ini mencakup sebagian besar konfigurasi yang dapat Anda ubah berdasarkan kebutuhan spesifik Anda.

**catatan**  
Dengan konfigurasi berbasis waktu seperti`time`, `interval` dan `window` pengaturan, unit default ketika tidak ada unit yang ditentukan adalah milidetik. Jadi nilai tanpa akhiran sama `30` dengan 30 milidetik. Untuk satuan waktu lainnya, sertakan sufiks yang sesuai `s` untuk *detik*, `m` *menit*, atau `h` *berjam-jam*.

**Topics**
+ [Konfigurasi loop](#flink-autoscaler-config-loop)
+ [Konfigurasi metrik dan riwayat](#flink-autoscaler-config-metrics)
+ [Konfigurasi Vertex](#flink-autoscaler-config-vertex)
+ [Konfigurasi backlog](#flink-autoscaler-config-backlog)
+ [Konfigurasi operasi skala](#flink-autoscaler-config-scale)

### Konfigurasi loop autoscaler
<a name="flink-autoscaler-config-loop"></a>

Autoscaler mengambil metrik tingkat titik pekerjaan untuk setiap beberapa interval waktu yang dapat dikonfigurasi, mengubahnya menjadi skala yang dapat ditindaklanjuti, memperkirakan paralelisme vertex pekerjaan baru, dan merekomendasikannya ke penjadwal pekerjaan. Metrik dikumpulkan hanya setelah waktu restart pekerjaan dan interval stabilisasi cluster.


| Kunci Config | Nilai default | Deskripsi | Contoh nilai | 
| --- | --- | --- | --- | 
| job.autoscaler.enabled | false | Aktifkan penskalaan otomatis pada cluster Flink Anda. | true, false | 
| job.autoscaler.decision.interval | 60s | Interval keputusan autoscaler. | 30(unit default adalah milidetik),, 5m 1h | 
| job.autoscaler.restart.time | 3m | Waktu restart yang diharapkan untuk digunakan hingga operator dapat menentukannya dengan andal dari riwayat. | 30(unit default adalah milidetik),, 5m 1h | 
| job.autoscaler.stabilization.interval | 300s | Periode stabilisasi di mana tidak ada penskalaan baru yang akan dieksekusi. | 30(unit default adalah milidetik),, 5m 1h | 
| job.autoscaler.debug.logs.interval | 300s | Interval log debug autoscaler. | 30(unit default adalah milidetik),, 5m 1h | 

### Agregasi metrik dan konfigurasi riwayat
<a name="flink-autoscaler-config-metrics"></a>

Autoscaler mengambil metrik, menggabungkannya dari jendela geser berbasis waktu dan ini dievaluasi ke dalam keputusan penskalaan. Riwayat keputusan penskalaan untuk setiap titik pekerjaan digunakan untuk memperkirakan paralelisme baru. Ini memiliki kedaluwarsa berdasarkan usia serta ukuran sejarah (setidaknya 1).


| Kunci Config | Nilai default | Deskripsi | Contoh nilai | 
| --- | --- | --- | --- | 
| job.autoscaler.metrics.window | 600s | Scaling metrics aggregation window size. | 30(unit default adalah milidetik),, 5m 1h | 
| job.autoscaler.history.max.count | 3 | Jumlah maksimum keputusan penskalaan sebelumnya untuk mempertahankan per simpul. | 1 untuk Integer.MAX\$1VALUE | 
| job.autoscaler.history.max.age | 24h | Jumlah minimum keputusan penskalaan sebelumnya untuk mempertahankan per simpul. | 30(unit default adalah milidetik),, 5m 1h | 

### Konfigurasi tingkat Job Vertex
<a name="flink-autoscaler-config-vertex"></a>

Paralelisme setiap titik pekerjaan dimodifikasi berdasarkan pemanfaatan target dan dibatasi oleh batas paralelisme min-max. Tidak disarankan untuk menetapkan pemanfaatan target mendekati 100% (yaitu nilai 1) dan batas pemanfaatan berfungsi sebagai buffer untuk menangani fluktuasi beban menengah.


| Kunci Config | Nilai default | Deskripsi | Contoh nilai | 
| --- | --- | --- | --- | 
| job.autoscaler.target.utilization | 0.7 | Target pemanfaatan simpul. | 0 - 1 | 
| job.autoscaler.target.utilization.boundary | 0.4 | Batas pemanfaatan simpul target. Penskalaan tidak akan dilakukan jika laju pemrosesan saat ini berada dalam[target\$1rate / (target\$1utilization - boundary), dan (target\$1rate / (target\$1utilization \$1 boundary)] | 0 - 1 | 
| job.autoscaler.vertex.min-parallelism | 1 | Paralelisme minimum yang dapat digunakan autoscaler. | 0 - 200 | 
| job.autoscaler.vertex.max-parallelism | 200 | Paralelisme maksimum yang dapat digunakan autoscaler. Perhatikan bahwa batas ini akan diabaikan jika lebih tinggi dari paralelisme maks yang dikonfigurasi dalam konfigurasi Flink atau langsung pada setiap operator. | 0 - 200 | 

### Konfigurasi pemrosesan backlog
<a name="flink-autoscaler-config-backlog"></a>

Vertex pekerjaan membutuhkan sumber daya tambahan untuk menangani peristiwa yang tertunda, atau backlog, yang terakumulasi selama periode waktu operasi skala. Ini juga disebut sebagai `catch-up` durasi. Jika waktu untuk memproses backlog melebihi `lag -threshold` nilai yang dikonfigurasi, pemanfaatan target vertex pekerjaan meningkat ke level maksimal. Ini membantu mencegah operasi penskalaan yang tidak perlu saat proses backlog.


| Kunci Config | Nilai default | Deskripsi | Contoh nilai | 
| --- | --- | --- | --- | 
| job.autoscaler.backlog-processing.lag-threshold | 5m | Ambang batas lag yang akan mencegah penskalaan yang tidak perlu saat menghapus pesan tertunda yang bertanggung jawab atas kelambatan. | 30(unit default adalah milidetik),, 5m 1h | 
| job.autoscaler.catch-up.duration | 15m | Durasi target untuk sepenuhnya memproses backlog apa pun setelah operasi penskalaan. Setel ke 0 untuk menonaktifkan penskalaan berbasis backlog. | 30(unit default adalah milidetik),, 5m 1h | 

### Konfigurasi operasi skala
<a name="flink-autoscaler-config-scale"></a>

Autoscaler tidak melakukan operasi penskalaan segera setelah operasi penskalaan dalam periode waktu tenggang. Ini mencegah siklus up-down-up-down operasi skala yang tidak diperlukan yang disebabkan oleh fluktuasi beban sementara. 

Kita dapat menggunakan rasio operasi skala turun untuk secara bertahap mengurangi paralelisme dan melepaskan sumber daya untuk memenuhi lonjakan beban sementara. Ini juga membantu mencegah operasi skala kecil yang tidak diperlukan pasca operasi penurunan skala besar. 

Kami dapat mendeteksi operasi skala yang efektif berdasarkan riwayat keputusan penskalaan titik pekerjaan sebelumnya untuk mencegah perubahan paralelisme lebih lanjut.


| Kunci Config | Nilai default | Deskripsi | Contoh nilai | 
| --- | --- | --- | --- | 
| job.autoscaler.scale-up.grace-period | 1h | Durasi di mana tidak ada penurunan skala dari simpul yang diizinkan setelah ditingkatkan. | 30(unit default adalah milidetik),, 5m 1h | 
| job.autoscaler.scale-down.max-factor | 0.6 | Faktor penurunan skala maks. Nilai 1 berarti tidak ada batasan pada skala ke bawah; 0.6 berarti pekerjaan hanya dapat diperkecil dengan 60% dari paralelisme asli. | 0 - 1 | 
| job.autoscaler.scale-up.max-factor | 100000. | Rasio peningkatan skala maksimum. Nilai pekerjaan 2.0 berarti hanya dapat ditingkatkan dengan 200% dari paralelisme saat ini. | 0 - Integer.MAX\$1VALUE | 
| job.autoscaler.scaling.effectiveness.detection.enabled | false | Apakah akan mengaktifkan deteksi operasi penskalaan yang tidak efektif dan memungkinkan penskalaan otomatis memblokir peningkatan skala lebih lanjut. | true, false | 

# Mengoptimalkan waktu restart pekerjaan untuk pemulihan tugas dan operasi penskalaan
<a name="flink-restart"></a>

Ketika tugas gagal atau ketika operasi penskalaan terjadi, Flink mencoba untuk menjalankan kembali tugas dari pos pemeriksaan terakhir selesai. Proses restart bisa memakan waktu satu menit atau lebih lama untuk dijalankan, tergantung pada ukuran status pos pemeriksaan dan jumlah tugas paralel. Selama periode restart, tugas backlog dapat menumpuk untuk pekerjaan itu. Ada beberapa cara, bahwa Flink mengoptimalkan kecepatan pemulihan dan memulai ulang grafik eksekusi untuk meningkatkan stabilitas pekerjaan.

Halaman ini menjelaskan beberapa cara Amazon EMR Flink dapat meningkatkan waktu restart pekerjaan selama pemulihan tugas atau operasi penskalaan.

**Topics**
+ [

## Pemulihan tugas-lokal
](#flink-restart-task-local)
+ [

## Pos pemeriksaan inkremental berbasis log generik
](#flink-restart-log-check)
+ [

## Pemulihan berbutir halus
](#flink-restart-fine-grained)
+ [

## Mekanisme restart gabungan dalam penjadwal adaptif
](#flink-restart-combined)

## Pemulihan tugas-lokal
<a name="flink-restart-task-local"></a>

**catatan**  
Pemulihan tugas-lokal didukung dengan Amazon EMR 6.0.0 dan yang lebih tinggi.

Dengan pos pemeriksaan Flink, setiap tugas menghasilkan snapshot statusnya yang ditulis Flink ke penyimpanan terdistribusi seperti Amazon S3. Dalam kasus pemulihan, tugas mengembalikan keadaan mereka dari penyimpanan terdistribusi. Penyimpanan terdistribusi memberikan toleransi kesalahan dan dapat mendistribusikan kembali status selama penskalaan ulang karena dapat diakses oleh semua node.

Namun, toko terdistribusi jarak jauh juga memiliki kelemahan: semua tugas harus membaca statusnya dari lokasi terpencil melalui jaringan. Hal ini dapat mengakibatkan waktu pemulihan yang lama untuk negara bagian besar selama pemulihan tugas atau operasi penskalaan.

Masalah waktu pemulihan yang lama ini diselesaikan dengan pemulihan *tugas-lokal*. Tugas menulis status mereka di pos pemeriksaan ke dalam penyimpanan sekunder yang bersifat lokal untuk tugas, seperti pada disk lokal. Mereka juga menyimpan status mereka di penyimpanan utama, atau Amazon S3 dalam kasus kami. Selama pemulihan, penjadwal menjadwalkan tugas pada pengelola tugas yang sama di mana tugas berjalan lebih awal sehingga mereka dapat pulih dari penyimpanan negara bagian lokal alih-alih membaca dari penyimpanan status jarak jauh. Untuk informasi selengkapnya, lihat [Task-Local Recovery di Dokumentasi](https://nightlies.apache.org/flink/flink-docs-master/docs/ops/state/large_state_tuning/#task-local-recovery) *Apache Flink*.

Tes benchmark kami dengan pekerjaan sampel telah menunjukkan bahwa waktu pemulihan telah dikurangi dari menit menjadi beberapa detik dengan pemulihan tugas-lokal diaktifkan.

Untuk mengaktifkan pemulihan tugas-lokal, atur konfigurasi berikut di file Anda. `flink-conf.yaml` Tentukan nilai interval checkpointing dalam milidetik.

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

## Pos pemeriksaan inkremental berbasis log generik
<a name="flink-restart-log-check"></a>

**catatan**  
Pemeriksaan inkremental berbasis log generik didukung dengan Amazon EMR 6.10.0 dan yang lebih tinggi.

Pemeriksaan inkremental berbasis log generik ditambahkan di Flink 1.16 untuk meningkatkan kecepatan pos pemeriksaan. Interval pos pemeriksaan yang lebih cepat sering mengakibatkan pengurangan pekerjaan pemulihan karena lebih sedikit peristiwa yang perlu diproses ulang setelah pemulihan. *Untuk informasi selengkapnya, lihat [Meningkatkan kecepatan dan stabilitas pos pemeriksaan dengan pos pemeriksaan inkremental berbasis log generik di Blog Apache Flink](https://flink.apache.org/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/).*

Dengan pekerjaan sampel, tes benchmark kami telah menunjukkan bahwa waktu pos pemeriksaan berkurang dari menit menjadi beberapa detik dengan pos pemeriksaan tambahan berbasis log generik.

Untuk mengaktifkan pos pemeriksaan inkremental berbasis log generik, atur konfigurasi berikut di file Anda. `flink-conf.yaml` Tentukan nilai interval checkpointing dalam milidetik.

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

## Pemulihan berbutir halus
<a name="flink-restart-fine-grained"></a>

**catatan**  
Dukungan pemulihan berbutir halus untuk penjadwal default tersedia dengan Amazon EMR 6.0.0 dan yang lebih tinggi. Dukungan pemulihan berbutir halus dalam penjadwal adaptif tersedia dengan Amazon EMR 6.15.0 dan lebih tinggi.

Ketika tugas gagal selama eksekusi, Flink mengatur ulang seluruh grafik eksekusi dan memicu eksekusi ulang lengkap dari pos pemeriksaan terakhir yang diselesaikan. Ini lebih mahal daripada hanya menjalankan kembali tugas yang gagal. Pemulihan berbutir halus hanya memulai kembali komponen yang terhubung dengan pipa dari tugas yang gagal. Dalam contoh berikut, grafik pekerjaan memiliki 5 simpul (`A`ke`E`). Semua koneksi antara simpul disalurkan dengan distribusi pointwise, dan `parallelism.default` untuk pekerjaan diatur ke. `2` 

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

Untuk contoh ini, ada total 10 tugas yang berjalan. Pipeline pertama (`a1`to`e1`) berjalan pada a TaskManager (`TM1`), dan pipeline kedua (`a2`to`e2`) berjalan pada yang lain TaskManager (`TM2`).

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

Ada dua komponen yang terhubung dengan pipa:`a1 → e1`, dan`a2 → e2`. Jika salah satu `TM1` atau `TM2` gagal, kegagalan hanya berdampak pada 5 tugas dalam pipeline tempat TaskManager sedang berjalan. Strategi restart hanya memulai komponen pipelined yang terpengaruh. 

Pemulihan berbutir halus hanya berfungsi dengan pekerjaan Flink paralel sempurna. Ini tidak didukung dengan `keyBy()` atau `redistribute()` operasi. Untuk informasi lebih lanjut, lihat [FLIP-1: Pemulihan Berbutir Halus dari Kegagalan Tugas](https://cwiki.apache.org/confluence/display/FLINK/FLIP-1%3A+Fine+Grained+Recovery+from+Task+Failures) dalam proyek Jira Proposal *Peningkatan Flink*.

Untuk mengaktifkan pemulihan berbutir halus, atur konfigurasi berikut di file Anda. `flink-conf.yaml`

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

## Mekanisme restart gabungan dalam penjadwal adaptif
<a name="flink-restart-combined"></a>

**catatan**  
Mekanisme restart gabungan dalam penjadwal adaptif didukung dengan Amazon EMR 6.15.0 dan yang lebih tinggi.

Penjadwal adaptif dapat menyesuaikan paralelisme pekerjaan berdasarkan slot yang tersedia. Ini secara otomatis mengurangi paralelisme jika tidak cukup slot yang tersedia agar sesuai dengan paralelisme pekerjaan yang dikonfigurasi. Jika slot baru tersedia, pekerjaan ditingkatkan lagi ke paralelisme pekerjaan yang dikonfigurasi. Penjadwal adaptif menghindari waktu henti di tempat kerja ketika tidak ada cukup sumber daya yang tersedia. Ini adalah penjadwal yang didukung untuk Flink Autoscaler. Kami merekomendasikan penjadwal adaptif dengan Amazon EMR Flink karena alasan ini. Namun, penjadwal adaptif mungkin melakukan beberapa restart dalam waktu singkat, satu restart untuk setiap sumber daya baru yang ditambahkan. Hal ini dapat menyebabkan penurunan kinerja dalam pekerjaan.

Dengan Amazon EMR 6.15.0 dan yang lebih tinggi, Flink memiliki mekanisme restart gabungan dalam penjadwal adaptif yang membuka jendela restart ketika sumber daya pertama ditambahkan, dan kemudian menunggu hingga interval jendela yang dikonfigurasi dari default 1 menit. Ini melakukan restart tunggal ketika ada sumber daya yang cukup tersedia untuk menjalankan pekerjaan dengan paralelisme yang dikonfigurasi atau ketika interval waktu habis.

Dengan contoh pekerjaan, pengujian benchmark kami menunjukkan bahwa fitur ini memproses 10% rekaman lebih banyak daripada perilaku default saat Anda menggunakan adaptive scheduler dan Flink autoscaler.

Untuk mengaktifkan mekanisme restart gabungan, atur konfigurasi berikut di `flink-conf.yaml` file Anda.

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

# Bekerja dengan pekerjaan Flink dari Zeppelin di Amazon EMR
<a name="flink-zeppelin"></a>

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

Amazon EMR merilis 6.10.0 dan [Apache Zeppelin](emr-zeppelin.md) integrasi dukungan yang lebih tinggi dengan Apache Flink. Anda dapat secara interaktif mengirimkan pekerjaan Flink melalui notebook Zeppelin. Dengan penerjemah Flink, Anda dapat menjalankan kueri Flink, menentukan streaming Flink dan pekerjaan batch, dan memvisualisasikan output dalam notebook Zeppelin. Interpreter Flink dibangun di atas Flink REST API. Ini memungkinkan Anda mengakses dan memanipulasi pekerjaan Flink dari dalam lingkungan Zeppelin untuk melakukan pemrosesan dan analisis data waktu nyata.

Ada empat sub-interpreter dalam penerjemah Flink. Mereka melayani tujuan yang berbeda, tetapi semuanya ada di JVM dan berbagi titik masuk pra-konfigurasi yang sama ke Flink (`ExecutionEnviroment`,,,`StreamExecutionEnvironment`). `BatchTableEnvironment` `StreamTableEnvironment` Penerjemah adalah sebagai berikut:
+ `%flink`— Menciptakan`ExecutionEnvironment`,`StreamExecutionEnvironment`,`BatchTableEnvironment`,`StreamTableEnvironment`, dan menyediakan lingkungan Scala
+ `%flink.pyflink`— Menyediakan lingkungan Python
+ `%flink.ssql`— Menyediakan lingkungan SQL streaming
+ `%flink.bsql`— Menyediakan lingkungan SQL batch

## Prasyarat
<a name="flink-zeppelin-prerequisites"></a>
+ Integrasi Zeppelin dengan Flink didukung untuk cluster yang dibuat dengan Amazon EMR 6.10.0 dan yang lebih tinggi.
+ Untuk melihat antarmuka web yang di-host pada kluster EMR seperti yang diperlukan untuk langkah-langkah ini, Anda harus mengkonfigurasi terowongan SSH untuk memungkinkan akses masuk. Untuk informasi selengkapnya, lihat [Mengonfigurasi setelan proxy untuk melihat situs web yang dihosting di simpul utama](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-proxy.html).

## Konfigurasikan Zeppelin-Flink pada cluster EMR
<a name="flink-zeppelin-configure"></a>

Gunakan langkah-langkah berikut untuk mengkonfigurasi Apache Flink pada Apache Zeppelin untuk berjalan pada cluster EMR:

1. Buat cluster baru dari konsol EMR Amazon. Pilih emr-6.10.0 atau yang lebih tinggi untuk rilis EMR Amazon. Kemudian, pilih untuk menyesuaikan bundel aplikasi Anda dengan opsi Kustom. Sertakan setidaknya Flink, Hadoop, dan Zeppelin dalam bundel Anda.  
![\[Di konsol EMR Amazon, sesuaikan bundel aplikasi Anda dengan opsi Kustom. Sertakan setidaknya Flink, Hadoop, dan Zeppelin dalam bundel Anda\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/images/emr-flink-zeppelin-console.png)

1. Buat sisa cluster Anda dengan pengaturan yang Anda inginkan.

1. Setelah cluster Anda berjalan, pilih cluster di konsol untuk melihat detailnya dan buka tab Applications. Pilih Zeppelin dari bagian Antarmuka pengguna aplikasi untuk membuka antarmuka web Zeppelin. Pastikan bahwa Anda telah mengatur akses ke antarmuka web Zeppelin dengan terowongan SSH ke node utama dan koneksi proxy seperti yang dijelaskan dalam. [Prasyarat](#flink-zeppelin-prerequisites)  
![\[Pada antarmuka web Zeppelin, Anda dapat mengimpor dan membuat notebook baru.\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/images/welcome-to-zeppelin.png)

1. Sekarang, Anda dapat membuat catatan baru di notebook Zeppelin dengan Flink sebagai penerjemah default.  
![\[Anda dapat membuat catatan baru di notebook Zeppelin dengan Flink sebagai penerjemah default.\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/images/emr-flink-zeppelin-create-notebook.png)

1. Lihat contoh kode berikut yang menunjukkan cara menjalankan pekerjaan Flink dari notebook Zeppelin.

## Jalankan pekerjaan Flink dengan Zeppelin-Flink di cluster EMR
<a name="flink-zeppelin-run-jobs"></a>
+ Contoh 1, Flink Scala

  a) WordCount Contoh 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 Contoh 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()
  ```  
![\[Misalnya, Anda dapat menjalankan WordCount pekerjaan batch WordCount dan streaming dari notebook Zeppelin.\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/images/streaming-wordcount-example.png)
+ Contoh 2, Flink Streaming SQL

  ```
  %flink.ssql
  SET 'sql-client.execution.result-mode' = 'tableau';
  SET 'table.dml-sync' = 'true';
  SET 'execution.runtime-mode' = 'streaming';
  
  create table dummy_table (
    id int,
    data string
  ) with (
    'connector' = 'filesystem',
    'path' = 's3://s3-bucket/dummy_table',
    'format' = 'csv'
  );
  
  INSERT INTO dummy_table SELECT * FROM (VALUES (1, 'Hello World'), (2, 'Hi'), (2, 'Hi'), (3, 'Hello'), (3, 'World'), (4, 'ADD'), (5, 'LINE'));
  
  SELECT * FROM dummy_table;
  ```  
![\[Contoh ini menunjukkan bagaimana menjalankan pekerjaan SQL Streaming Flink.\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/images/flink-streaming-sql.png)
+ Contoh 3, Pyflink. Perhatikan bahwa Anda harus mengunggah file teks sampel Anda sendiri yang diberi nama `word.txt` ke bucket S3 Anda.

  ```
  %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. Pilih **FLINK JOB** di UI Zeppelin untuk mengakses dan melihat UI Web Flink.  
![\[Flink code snippet for word count with output showing counts for "hello", "flink", "hadoop", and "world".\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/images/batch-wordcount-example.png)

1. Memilih rute **FLINK JOB** ke Konsol Web Flink di tab lain di browser Anda.  
![\[Memilih FLINK JOB membuka Konsol Web Flink di tab lain browser Anda.\]](http://docs.aws.amazon.com/id_id/emr/latest/ReleaseGuide/images/flink-web-console.png)

# Riwayat rilis Flink
<a name="Flink-release-history"></a>

Tabel berikut mencantumkan versi Flink yang disertakan dalam setiap versi rilis Amazon EMR, bersama dengan komponen yang diinstal dengan aplikasi. Untuk versi komponen di setiap rilis, lihat bagian Versi Komponen untuk rilis Anda di[Amazon EMR 7.x versi rilis](emr-release-7x.md),[Amazon EMR versi rilis 6.x](emr-release-6x.md), atau[Amazon EMR versi rilis 5.x](emr-release-5x.md).


**Informasi versi Flink**  

| Label Rilis Amazon EMR | Versi Flink | Komponen Dipasang Dengan 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 | 

# Catatan rilis Flink berdasarkan versi
<a name="Flink-release-history-versions"></a>

Lihat bagian berikut untuk catatan rilis lengkap.

# Amazon EMR 7.10.0 - Catatan rilis Flink
<a name="Flink-release-history-7100"></a>

**Amazon EMR 7.10.0 - Perubahan Flink**


| Tipe | Deskripsi | 
| --- | --- | 
|  Fitur Baru  |  Dimulai dengan Amazon EMR versi 7.10.0, Anda dapat mengaktifkan konektor Kafka dan Kinesis Flink dengan lebih mudah dengan menggunakan pengaturan konfigurasi. Tambahkan salah satu `kafka.enabled: true` atau `kinesis.enabled: true` dalam `flink-conf` klasifikasi selama pembuatan cluster untuk secara otomatis mengkonfigurasi konektor masing-masing. Pendekatan yang disederhanakan ini menghilangkan langkah-langkah konfigurasi manual yang sebelumnya diperlukan.  | 

# Amazon EMR 7.9.0 - Catatan rilis Flink
<a name="Flink-release-history-790"></a>

**Amazon EMR 7.9.0 - Perubahan Flink**


| Tipe | Deskripsi | 
| --- | --- | 
|  Fitur Baru  |  Dimulai dengan Amazon EMR 7.9.0, Apache Flink menyediakan out-of-the-box dukungan untuk format file Avro, Parquet, dan ORC. Anda dapat menggunakan format ini secara langsung dengan Flink API (DataStream, Tabel, atau SQL) tanpa memerlukan konfigurasi tambahan apa pun.  | 
|  Fitur Baru  |  Dimulai dengan Amazon EMR versi 7.9.0, Anda dapat mengaktifkan katalog data Hive metastore atau AWS Glue dengan lebih mudah dengan menggunakan pengaturan konfigurasi. Tambahkan salah satu `hive.enabled: true` atau `glue.enabled: true` dalam `flink-conf` klasifikasi selama pembuatan cluster untuk secara otomatis mengkonfigurasi katalog data masing-masing. Pendekatan yang disederhanakan ini menghilangkan langkah-langkah konfigurasi manual yang sebelumnya diperlukan.  | 

# Amazon EMR 7.8.0 - Catatan rilis Flink
<a name="Flink-release-history-780"></a>

**Konfigurasi** - EMR Flink bekerja di luar kotak dengan S3A di semua wilayah/partisi. AWS 

# Amazon EMR 7.7.0 - Catatan rilis Flink
<a name="Flink-release-history-770"></a>
+ Flink SQL shell dapat dipanggil dengan mudah dengan perintah `flink-sql-client` yang terhubung ke `/usr/lib/flink/bin/sql-client.sh`

# Amazon EMR 7.6.0 - Catatan rilis Flink
<a name="Flink-release-history-760"></a>

## Amazon EMR 7.6.0 - Fitur Flink
<a name="Flink-release-history-760-features"></a>
+ Tidak ada perubahan untuk rilis.

# Amazon EMR 7.5.0 - Catatan rilis Flink
<a name="Flink-release-history-750"></a>


| Tipe | Deskripsi | 
| --- | --- | 
|  Fitur  |  Menambahkan dukungan untuk menjalankan pekerjaan Flink dengan toples jarak jauh.  | 
|  Peningkatan  |  Jadikan pengecualian simpul dan utas inklusi aman.  | 

## Amazon EMR 7.5.0 - Fitur Flink
<a name="Flink-release-history-750-features"></a>
+ Dimulai dengan Amazon EMR 7.5.0, Anda dapat menentukan lokasi Amazon S3 sebagai jalur JAR saat menggunakan perintah dan `run` `run-application` Apache Flink CLI. Saat Anda menyediakan jalur S3, EMR secara otomatis mengunduh file JAR dari Amazon S3 ke penyimpanan EBS cluster. Setiap kali Anda menentukan file JAR yang sama, EMR mengunduh versi terbaru dari Amazon S3 alih-alih menggunakan kembali file JAR yang ada di cluster. 
+ Dimulai dengan Amazon EMR 7.5.0, pelanggan dapat melewati jalur jarak jauh (lokasi S3) sebagai jalur JAR dengan dan perintah `run` `run-application` Flink CLI. JAR kemudian secara otomatis ditarik dari penyimpanan S3 ke penyimpanan EBS cluster. Jika JAR yang sama disediakan lagi, ia mengunduh yang terbaru dari S3 dan tidak menggunakan kembali JAR yang ada di cluster.

# Amazon EMR 7.4.0 - Catatan rilis Flink
<a name="Flink-release-history-740"></a>


| Tipe | Deskripsi | 
| --- | --- | 
|  Peningkatan  |  Versi Flink ditingkatkan ke 1.19.1.  | 

# Amazon EMR 7.3.0 - Catatan rilis Flink
<a name="Flink-release-history-730"></a>
+ Secara default, cluster dengan enkripsi in-transit yang diaktifkan melalui konfigurasi keamanan akan menggunakan TLS 1.3 untuk komunikasi internal antara proses Flink, titik akhir JOB Manager REST, dan Flink Job History Server.

# Amazon EMR 7.2.0 - Catatan rilis Flink
<a name="Flink-release-history-720"></a>


| Tipe | Deskripsi | 
| --- | --- | 
|  Peningkatan  |  Support menambahkan label kustom ke layanan Kubernetes per pekerjaan Flink melalui konfigurasi. `kubernetes.service.labels`  | 