All Products
Search
Document Center

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

Last Updated:Apr 21, 2026

Topik ini menjelaskan cara menjalankan dan mendebug pekerjaan yang menggunakan konektor Realtime Compute for Apache Flink di lingkungan pengembang lokal. Pendekatan ini membantu Anda memverifikasi kebenaran kode dengan cepat, mengidentifikasi serta mengatasi masalah, dan mengurangi biaya cloud.

Informasi latar belakang

Saat menjalankan atau mendebug pekerjaan Flink di IntelliJ IDEA yang memiliki dependensi pada konektor komersial untuk Realtime Compute for Apache Flink, Anda mungkin mengalami error waktu proses yang menunjukkan bahwa kelas terkait konektor tidak ditemukan. Sebagai contoh, ketika menjalankan pekerjaan yang menggunakan MaxCompute connector, exception berikut 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)

Exception ini terjadi karena beberapa kelas waktu proses tidak tersedia dalam paket JAR konektor default. Anda dapat mengikuti langkah-langkah berikut untuk menambahkan kelas-kelas yang hilang tersebut agar pekerjaan dapat berhasil dijalankan atau didebug di IntelliJ IDEA.

Solusi sementara untuk masalah debugging lokal

Langkah 1: Tambahkan dependensi ke konfigurasi pekerjaan

Pertama, unduh paket uber JAR yang berisi kelas waktu proses yang diperlukan dari Maven Central Repository. Sebagai contoh, untuk dependensi ververica-connector-odps yang digunakan oleh MaxCompute, jika versinya adalah 1.17-vvr-8.0.11-1, Anda dapat menemukan file ververica-connector-odps-1.17-vvr-8.0.11-1-uber.jar—yang ditandai dengan akhiran -uber.jar—di direktori yang sesuai di repositori Maven. Unduh file tersebut ke direktori lokal.

Saat membuat environment dalam kode Anda, tambahkan konfigurasi pipeline.classpaths dan atur nilainya ke jalur file uber JAR tersebut. Jika Anda memiliki beberapa dependensi konektor, pisahkan jalurnya dengan titik koma (;). Contohnya: file:///path/to/a-uber.jar;file:///path/to/b-uber.jar. Pada Windows, Anda harus menyertakan partisi disk. Contohnya: file:///D:/path/to/a-uber.jar;file:///E:/path/to/b-uber.jar. Untuk pekerjaan DataStream API, gunakan kode berikut untuk menambahkan konfigurasi:

Configuration conf = new Configuration();
conf.setString("pipeline.classpaths", "file://" + "absolute path of the uber jar");
StreamExecutionEnvironment env =
  	StreamExecutionEnvironment.getExecutionEnvironment(conf);

Untuk pekerjaan Table API, gunakan kode berikut untuk menambahkan konfigurasi:

Configuration conf = new Configuration();
conf.setString("pipeline.classpaths", "file://" + "absolute path of the uber jar");
EnvironmentSettings envSettings =
  	EnvironmentSettings.newInstance().withConfiguration(conf).build();
TableEnvironment tEnv = TableEnvironment.create(envSettings);
Penting
  • Hapus konfigurasi pipeline.classpaths sebelum melakukan packaging pekerjaan dan mengunggahnya ke Realtime Compute for Apache Flink.

  • Karena perbedaan versi, jika Anda menggunakan versi lama ververica-connector-odps, unduh paket uber 1.17-vvr-8.0.11-1 untuk debugging lokal. Saat melakukan packaging pekerjaan, Anda tetap dapat menggunakan versi JAR lama, tetapi hindari penggunaan parameter yang diperkenalkan di versi yang lebih baru.

  • Untuk mendebug konektor MySQL, Anda juga harus mengonfigurasi dependensi Maven terkait. Untuk informasi selengkapnya, lihat Debug pekerjaan DataStream yang menggunakan konektor MySQL.

  • Untuk debugging lokal, pastikan ketersediaan jaringan ke penyimpanan hulu dan hilir. Anda dapat menggunakan penyimpanan lokal atau layanan cloud dengan akses jaringan publik yang diaktifkan. Selain itu, tambahkan Alamat IP publik mesin lokal Anda ke daftar putih layanan hulu dan hilir yang sesuai.

Langkah 2: Konfigurasikan paket JAR ClassLoader yang diperlukan untuk waktu proses

Agar Flink dapat memuat kelas waktu proses konektor, Anda juga harus menambahkan paket JAR ClassLoader. Pertama, unduh paket JAR ClassLoader yang sesuai berdasarkan versi engine Ververica Runtime (VVR) yang Anda gunakan. Tautan unduhannya sebagai berikut:

Sebagai contoh, ubah konfigurasi run lokal untuk pekerjaan di IntelliJ IDEA. Klik ikon hijau di sebelah kiri kelas entri untuk membuka menu bar, lalu pilih Modify Run Configuration...:

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

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

Pada jendela konfigurasi run yang terbuka, klik Modify options dan pilih Modify classpath. Bagian Modify classpath akan muncul di bagian bawah jendela. Klik ikon +, pilih paket JAR ClassLoader yang telah Anda unduh, lalu simpan konfigurasi run tersebut. Jika muncul pesan error yang menunjukkan bahwa kelas Flink umum seperti org.apache.flink.configuration.Configuration tidak ditemukan dan pekerjaan gagal dieksekusi, pilih Add dependencies with provided scope to classpath di bawah Modify options.

image

Mulai VVR 11.1, engine VVR menggunakan JDK 11. Anda harus menambahkan opsi --add-opens java.base/jdk.internal.loader=ALL-UNNAMED di JVM Options, seperti yang ditunjukkan pada gambar berikut:

image

Solusi untuk debugging lokal pekerjaan Table API

Mulai VVR 11.1, konektor Ververica tidak lagi sepenuhnya kompatibel dengan paket flink-table-common versi komunitas. Anda mungkin mengalami error waktu proses, termasuk namun tidak terbatas pada berikut ini:

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

Untuk mengatasi masalah ini, perbarui file pom.xml Anda. Gantilah dependensi org.apache.flink:flink-table-common dengan com.alibaba.ververica:flink-table-common versi yang sesuai.

Referensi