View a markdown version of this page

Menerapkan penskalaan aplikasi di Layanan Terkelola untuk Apache Flink - Layanan Terkelola untuk Apache Flink

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

Menerapkan penskalaan aplikasi di Layanan Terkelola untuk Apache Flink

Anda dapat mengonfigurasi eksekusi tugas secara paralel dan alokasi sumber daya untuk Amazon Managed Service untuk Apache Flink untuk mengimplementasikan penskalaan. Untuk informasi tentang bagaimana Apache Flink menjadwalkan instance paralel tugas, lihat Eksekusi Paralel di Dokumentasi Apache Flink.

Konfigurasikan paralelisme aplikasi dan KPU ParallelismPer

Anda mengonfigurasi eksekusi paralel untuk tugas aplikasi Layanan Terkelola untuk Apache Flink (seperti membaca dari sumber atau menjalankan operator) menggunakan ParallelismConfiguration properti berikut:

  • Parallelism — Gunakan properti ini untuk mengatur paralelisme aplikasi Apache Flink default. Semua operator, sumber, dan sink mengeksekusi dengan paralelisme ini kecuali ditimpa dalam kode aplikasi. Default-nya adalah 1, dan maksimum default adalah 256.

  • ParallelismPerKPU — Gunakan properti ini untuk mengatur jumlah tugas paralel yang dapat dijadwalkan per Unit Pemrosesan Kinesis (KPU) aplikasi Anda. Default-nya adalah 1, dan maksimumnya adalah 8. Untuk aplikasi yang memiliki operasi pemblokiran (misalnya, I/O), nilai yang lebih tinggi ParallelismPerKPU mengarah ke pemanfaatan penuh sumber daya KPU.

catatan

Batas untuk sama dengan Parallelism di ParallelismPerKPU kalikan batas untuk KPU (yang memiliki default 64). Batas KPU dapat ditingkatkan dengan meminta peningkatan batas. Untuk petunjuk tentang cara meminta peningkatan batas ini, lihat "Untuk meminta peningkatan batas" di Service Quotas.

Untuk informasi tentang menyetel paralelisme tugas untuk operator tertentu, lihat Mengatur Paralelisme: Operator dalam Dokumentasi Apache Flink.

Alokasikan Unit Pemrosesan Kinesis

Layanan Terkelola untuk Apache Flink menyediakan kapasitas sebagai KPU. Satu KPU memberi Anda 1 vCPU dan memori 4 GB. Untuk setiap KPU yang dialokasikan, penyimpanan aplikasi berjalan sebesar 50 GB juga disediakan.

Managed Service for Apache Flink menghitung KPU yang diperlukan untuk menjalankan aplikasi Anda menggunakan ParallelismPerKPU properti Parallelism dan, sebagai berikut:

Allocated KPUs for the application = Parallelism/ParallelismPerKPU

Layanan Terkelola untuk Apache Flink dengan cepat memberikan sumber daya aplikasi Anda sebagai respons terhadap lonjakan throughput atau aktivitas pemrosesan. Ini akan menghapus sumber daya dari aplikasi Anda secara bertahap setelah lonjakan aktivitas telah berlalu. Untuk menonaktifkan alokasi otomatis sumber daya, atur nilai AutoScalingEnabled ke false, seperti yang dijelaskan nanti di Perbarui paralelisme aplikasi Anda.

Batas default untuk CPU untuk aplikasi Anda adalah 64. Untuk petunjuk tentang cara meminta peningkatan batas ini, lihat "Untuk meminta peningkatan batas" di Service Quotas.

catatan

KPU tambahan dikenakan biaya untuk tujuan orkestrasi. Untuk informasi selengkapnya, lihat Layanan Terkelola untuk harga Apache Flink.

Perbarui paralelisme aplikasi Anda

Bagian ini berisi permintaan sampel untuk tindakan API yang mengatur paralelisme aplikasi. Untuk contoh dan petunjuk selengkapnya tentang cara menggunakan blok permintaan dengan tindakan API, lihat Layanan Terkelola untuk kode contoh API Apache Flink.

Permintaan contoh berikut untuk tindakan CreateApplication mengatur paralelisme saat Anda membuat aplikasi:

{ "ApplicationName": "string", "RuntimeEnvironment":"FLINK-1_18", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::amzn-s3-demo-bucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": { "ParallelismConfiguration": { "AutoScalingEnabled": "true", "ConfigurationType": "CUSTOM", "Parallelism": 4, "ParallelismPerKPU": 4 } } } }

Permintaan contoh berikut untuk tindakan UpdateApplication mengatur paralelisme untuk aplikasi yang sudah ada:

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "true", "ConfigurationTypeUpdate": "CUSTOM", "ParallelismPerKPUUpdate": 4, "ParallelismUpdate": 4 } } } }

Permintaan contoh berikut untuk tindakan UpdateApplication menonaktifkan paralelisme untuk aplikasi yang sudah ada:

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "ParallelismConfigurationUpdate": { "AutoScalingEnabledUpdate": "false" } } } }

Pertimbangan MaxParallelism

Paralelisme maksimum yang dapat diskalakan oleh pekerjaan Flink dibatasi oleh minimum maxParallelism di semua operator pekerjaan. Misalnya, jika Anda memiliki pekerjaan sederhana dengan hanya sumber dan wastafel, dan sumbernya memiliki maxParallelism 16 dan wastafel memiliki 8, aplikasi tidak dapat menskalakan melampaui paralelisme 8.

Untuk mempelajari bagaimana default maxParallelism operator dihitung dan cara mengganti default, lihat Mengatur Paralelisme Maksimum dalam dokumentasi Apache Flink.

Sebagai aturan dasar, ketahuilah bahwa jika Anda tidak mendefinisikan maxParallelism untuk operator apa pun dan Anda memulai aplikasi Anda dengan paralelisme kurang dari atau sama dengan 128, semua operator akan memiliki maxParallelism 128.

catatan

Paralelisme maksimum pekerjaan adalah batas atas paralelisme untuk menskalakan aplikasi Anda dengan mempertahankan status.

Jika Anda memodi maxParallelism fikasi aplikasi yang ada, aplikasi tidak akan dapat memulai ulang dari snapshot sebelumnya yang diambil dengan yang lamamaxParallelism. Anda hanya dapat me-restart aplikasi tanpa snapshot.

Jika Anda berencana untuk menskalakan aplikasi Anda ke paralelisme yang lebih besar dari 128, Anda harus secara eksplisit menyetel maxParallelism dalam aplikasi Anda.

  • Logika penskalaan otomatis akan mencegah penskalaan pekerjaan Flink ke paralelisme yang akan melebihi paralelisme maksimum pekerjaan.

  • Jika Anda menggunakan penskalaan otomatis kustom atau penskalaan terjadwal, konfigurasikan agar tidak melebihi paralelisme maksimum pekerjaan.

  • Jika Anda menskalakan aplikasi secara manual melampaui paralelisme maksimum, aplikasi gagal memulai.