全部产品
Search
文档中心

Realtime Compute for Apache Flink:Jalankan dan debug konektor secara lokal

更新时间:Nov 06, 2025

Anda dapat men-debug program yang menggunakan konektor Realtime Compute for Apache Flink di mesin lokal. Hal ini membantu Anda memverifikasi kebenaran kode, mengidentifikasi serta menyelesaikan masalah, dan menghemat biaya migrasi cloud.

Informasi latar belakang

Saat men-debug program Flink yang menggunakan konektor Realtime Compute for Apache Flink di IntelliJ IDEA, mungkin terjadi kesalahan kelas terkait konektor tidak ditemukan. Sebagai contoh, saat men-debug program yang menggunakan MaxCompute konektor, pengecualian berikut dapat terjadi:

Caused by: java.lang.ClassNotFoundException: com.alibaba.ververica.connectors.odps.newsource.split.OdpsSourceSplitSerializer
	at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

Kesalahan ini disebabkan karena kelas waktu proses tertentu tidak tersedia dalam JAR konektor default.

Untuk menambahkan kelas yang hilang, ikuti langkah-langkah berikut.

Prosedur

Langkah 1: Tambahkan dependensi

  1. Unduh paket JAR uber konektor yang berisi kelas waktu proses dari repositori pusat Maven.

    Sebagai contoh, jika versi dependensi ververica-connector-odps dari MaxCompute konektor adalah 1.17-vvr-8.0.11-1, Anda perlu mengunduh paket ververica-connector-odps-1.17-vvr-8.0.11-1-uber.jar dari direktori repositori pusat Maven ke direktori lokal Anda.

  2. Saat mendapatkan lingkungan eksekusi, atur parameter pipeline.classpaths ke jalur paket JAR uber.

    Jika ada beberapa dependensi konektor, pisahkan jalur paket dengan titik koma (;). Sebagai contoh, Anda dapat mengatur parameter ini ke file:///path/to/a-uber.jar;file:///path/to/b-uber.jar. Di Windows, tambahkan nama disk terkait ke jalur, seperti file:///D:/path/to/a-uber.jar;file:///E:/path/to/b-uber/jar. Contoh kode berikut menunjukkan konfigurasi untuk program DataStream:

    Configuration conf = new Configuration();
    conf.setString("pipeline.classpaths", "file://" + "Jalur absolut paket JAR uber.
    StreamExecutionEnvironment env =
      	StreamExecutionEnvironment.getExecutionEnvironment(conf);

    Contoh kode berikut menunjukkan konfigurasi untuk program Table API:

    Configuration conf = new Configuration();
    conf.setString("pipeline.classpaths", "file://" + "Jalur absolut paket JAR uber.
    EnvironmentSettings envSettings =
      	EnvironmentSettings.newInstance().withConfiguration(conf).build();
    TableEnvironment tEnv = TableEnvironment.create(envSettings);
Penting
  • Sebelum mengunggah JAR yang dikompilasi ke Realtime Compute for Apache Flink, hapus konfigurasi pipeline.classpaths.

  • Untuk men-debug program Flink yang menggunakan konektor MaxCompute di tempat dan berjalan pada versi framework lebih lama dari 1.17-vvr-8.0.11-1, gunakan paket JAR uber konektor 1.17-vvr-8.0.11-1. Saat membangun JAR program untuk penerapan cloud, Anda dapat menyertakan versi lama paket JAR uber konektor, tetapi pastikan menghapus opsi konektor yang hanya didukung oleh versi framework yang lebih baru.

  • Untuk men-debug program yang menggunakan konektor MySQL, konfigurasikan dependensi di Maven sesuai instruksi di Debug Program DataStream yang Mencakup Konektor MySQL.

  • Selama debugging lokal, pastikan konektivitas jaringan antara aplikasi Flink dan layanan hulu/hilir. Anda memiliki dua opsi:

    • Jalankan layanan hulu/hilir secara lokal di jaringan yang sama dengan Flink.

    • Untuk menggunakan layanan cloud sebagai sumber atau tujuan data, verifikasi bahwa Flink dapat mengaksesnya melalui Internet. Selain itu, tambahkan alamat IP publik perangkat Anda ke daftar putih layanan cloud.

Langkah 2: Konfigurasikan paket JAR ClassLoader yang diperlukan untuk menjalankan pekerjaan

Untuk memungkinkan Flink memuat kelas runtime konektor, tambahkan paket JAR ClassLoader ke konfigurasi:

  1. Klik untuk mengunduh paket JAR ClassLoader berdasarkan versi VVR Anda:

  2. Buka file program di IntelliJ IDEA.

  3. Klik ikon hijau di sebelah kiri kelas entri untuk memperluas menu.

    商业版连接器本地运行-IDEA运行1

  4. Pilih Modify Run Configuration....

    商业化连接器本地运行-IDEA运行2

  5. Di jendela yang muncul, klik Modify options.

    image

  6. Dalam daftar drop-down Add Run Options, pilih opsi Modify classpath pada bagian Java.

    Bagian Modify classpath akan muncul di jendela.

  7. Di bagian Modify classpath, klik ikon +, pilih Include, dan pilih JAR ClassLoader yang telah diunduh.

  8. Simpan konfigurasi.

    Catatan

    Jika pesan kesalahan menunjukkan kelas Flink umum yang hilang, klik Modify options dan pilih Add dependencies with "provided" scope to classpath.

Debug pekerjaan Table API

Mulai dari VVR 11.1, konektor Realtime Compute for Apache Flink tidak lagi sepenuhnya kompatibel dengan paket flink-table-common milik Apache Flink. Anda mungkin mengalami kesalahan berikut saat menjalankan pekerjaan yang menggunakan Table API:

java.lang.ClassNotFoundException: org.apache.flink.table.factories.OptionUpgradabaleTableFactory

Solusi: Perbarui file pom.xml Anda. Ganti org.apache.flink:flink-table-common dengan com.alibaba.ververica:flink-table-common, pastikan menggunakan versi yang benar.

Referensi