Berbagi teknologi

56. Penjelasan rinci tentang konfigurasi eksekusi manajemen Flink DataStream

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1 Ikhtisar
1. Jalankan konfigurasi

StreamExecutionEnvironment MengandungExecutionConfig, yang memungkinkan nilai konfigurasi khusus pekerjaan ditetapkan pada waktu proses.

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
ExecutionConfig executionConfig = env.getConfig();

Berikut ini adalah opsi konfigurasi yang tersedia: (tebal secara default)

  • setClosureCleanerLevel() . Tingkat pembersih penutupan diatur secara default keClosureCleanerLevel.RECURSIVE . Pembersih penutupan menghapus referensi yang tidak perlu ke kelas pemanggilan fungsi anonim dalam program Flink. Setelah menonaktifkan pembersih penutupan, fungsi anonim pengguna mungkin mereferensikan beberapa kelas panggilan yang tidak dapat diserialisasi. Ini akan menyebabkan serializer mengeluarkan pengecualian. Nilai yang dapat ditetapkan adalah:NONE: nonaktifkan pembersih penutupan sepenuhnya,TOP_LEVEL: Hanya membersihkan kelas tingkat atas tanpa mengulang ke bidang,RECURSIVE: Bersihkan semua bidang secara rekursif.
  • getParallelism() / setParallelism(int parallelism) . Menetapkan tingkat paralelisme default untuk pekerjaan.
  • getMaxParallelism() / setMaxParallelism(int parallelism) . Menetapkan paralelisme maksimum default untuk pekerjaan. Pengaturan ini menentukan tingkat paralelisme maksimum dan menentukan batas atas penskalaan dinamis.
  • getNumberOfExecutionRetries() / setNumberOfExecutionRetries(int numberOfExecutionRetries) . Tetapkan berapa kali tugas yang gagal dijalankan kembali. Nilai nol secara efektif menonaktifkan toleransi kesalahan.-1 Menunjukkan penggunaan default sistem (ditentukan dalam konfigurasi).Konfigurasi ini tidak digunakan lagi, harap gunakan strategi mulai ulang.
  • getExecutionRetryDelay() / setExecutionRetryDelay(long executionRetryDelay) . Menetapkan penundaan (dalam milidetik) sistem menunggu sebelum menjalankan kembali pekerjaan setelah gagal. Setelah semua tugas berhasil dihentikan di TaskManagers, penundaan dihitung dan setelah penundaan berlalu, tugas akan dimulai ulang.Konfigurasi ini sudah tidak digunakan lagi, harap gunakan strategi mulai ulang.
  • getExecutionMode() / setExecutionMode() . Mode eksekusi default adalah PIPELINED. Atur mode eksekusi untuk menjalankan program. Mode eksekusi menentukan apakah pertukaran data dilakukan dalam mode batch atau streaming.
  • enableForceKryo() / disableForceKryo . Kryo tidak dipaksa untuk digunakan secara default. Memaksa GenericTypeInformation menggunakan serializer Kryo untuk POJO meskipun dapat diurai sebagai POJO. Dalam beberapa kasus, mengaktifkan konfigurasi ini sebaiknya diutamakan. Misalnya, ketika serializer internal Flink gagal menangani POJO dengan benar.
  • enableForceAvro() / disableForceAvro() . Avro tidak dipaksa untuk digunakan secara default. Paksa Flink AvroTypeInfo untuk menggunakan serializer Avro alih-alih Kryo untuk membuat serial POJO Avro.
  • enableObjectReuse() / disableObjectReuse() . Secara default, objek tidak digunakan kembali di Flink. Mengaktifkan mode penggunaan kembali objek memerintahkan runtime untuk menggunakan kembali objek pengguna untuk kinerja yang lebih baik. Perhatikan bahwa ini dapat menyebabkan bug.
  • getGlobalJobParameters() / setGlobalJobParameters() . Metode ini memungkinkan pengguna untuk mengatur objek khusus ke dalam konfigurasi global pekerjaan.KarenaExecutionConfig Dapat diakses di semua fungsi yang ditentukan pengguna, jadi ini adalah cara mudah untuk membuat konfigurasi tersedia secara global di seluruh pekerjaan.
  • addDefaultKryoSerializer(Class type, Serializer serializer) . Mendaftarkan instance serializer Kryo untuk tipe yang ditentukan.
  • addDefaultKryoSerializer(Class type, Class