All Products
Search
Document Center

MaxCompute:Pertanyaan Umum tentang Java SDK

Last Updated:Jun 21, 2026

Artikel ini menjelaskan pertanyaan umum mengenai Java SDK.

Kategori Pertanyaan

Pertanyaan Umum

Konsultasi SDK

Error Runtime

Bagaimana cara mengunduh paket Java SDK?

Paket Java SDK MaxCompute telah di-host di Maven, sehingga Anda dapat mengunduhnya melalui Maven.

Sebagai contoh, paket Java SDK MapReduce. Anda dapat mencari odps-sdk-mapred di Maven, lalu klik ikon image di samping versi SDK yang sesuai pada tab Versions untuk mengunduh paket tersebut.

Untuk detail lengkap mengenai paket Java SDK, lihat Java SDK overview.

Bagaimana cara mengatur Flag SQL melalui MaxCompute Java SDK?

Saat Anda mengirimkan SQL melalui konsol DataWorks atau klien MaxCompute (odpscmd), biasanya perlu mengatur Flag SQL. Misalnya, jika ingin menggunakan tipe data MaxCompute 2.0, Anda dapat mengaktifkannya pada level Session dengan menambahkan pernyataan Set Flag sebelum SQL yang menggunakan tipe data versi 2.0: set odps.sql.type.system.odps2=true;.

Saat mengirimkan SQL menggunakan Java SDK, Anda tidak dapat hanya menambahkan pernyataan Set Flag langsung ke dalam SQL. Cara yang benar untuk mengatur Flag adalah sebagai berikut.

--Buat objek SQLTask.
SQLTask task = new SQLTask();task.setName("foobar");task.setQuery("select ...");
--Atur Flag.
Map settings = new HashMap<>();settings.put("odps.sql.type.system.odps2", "true");...
--Atur Flag lainnya.
task.setProperty("settings", new JSONObject(settings).toString()); --Ini adalah langkah kunci: atur JSON String yang sesuai dengan Flags ke dalam properti settings.
--Eksekusi.
Instance instance = odps.instances().create(task);

Bagaimana menggunakan Logview untuk mendiagnosis error Java SDK?

MaxCompute Java SDK menyediakan antarmuka Logview i = SQLTask.run(odps, sql); String logview = odps.logview().generateLogView(i, 7×24).

Bagaimana menjalankan job SQL dalam kode bisnis Java MaxCompute?

Anda dapat memanggil Java SDK MaxCompute dalam kode bisnis untuk menjalankan job SQL. Untuk informasi selengkapnya, lihat Java SDK overview.

Saat menjalankan kueri SQL menggunakan SQLTask, bagaimana cara mendapatkan semua data jika jumlah hasil kueri melebihi batas 10.000 baris?

Anda dapat menuliskan result set kueri SQL ke dalam sebuah tabel, lalu mengunduh seluruh datanya melalui Tunnel.

Apakah ada batasan pada volume data yang dikembalikan oleh result set dengan metode berikut di SQLTask? Jika ada, berapa ukuran maksimum result set yang dapat dikembalikan?

Contoh perintah sebagai berikut.

Instance instance = SQLTask.run(odps, "sql语句");
instance.waitForSuccess();
List<Record> records = SQLTask.getResult(instance);              

Ada batasan. Anda dapat menyesuaikannya hingga maksimal 10.000 baris. Jika volumenya besar, disarankan menggunakan Tunnel SDK untuk mengekspor data.

Apa perbedaan antara kueri data menggunakan SQLTask dan DownloadSession dalam hal penggunaan dan fungsionalitas?

SQLTask menjalankan SQL dan mengembalikan hasilnya, tetapi jumlah baris yang dikembalikan dibatasi—secara default sebanyak 10.000 baris.

DownloadSession mengunduh data dari tabel yang sudah ada, tanpa batasan jumlah baris.

Job MaxCompute Java SDK macet saat dieksekusi, bagaimana mengatasinya?

  • Fenomena Masalah

    • Pengguna A mengalami kebuntuan saat menjalankan job menggunakan MaxCompute Java SDK dan tidak memiliki informasi Logview.

    • Pengguna B mengalami kebuntuan saat mengakses tabel menggunakan MaxCompute Java SDK setelah operasi RestClient Retry.

  • Penyebab

    • Pengguna A tidak memiliki Logview untuk Instance-nya, sehingga sistem tidak dapat melacak proses eksekusi Instance tersebut. Setelah Instance dibuat, metode instance.waitForSuccess() dipanggil. Jika job membutuhkan waktu lama, proses akan terhenti. Dengan adanya Logview, Anda dapat melihat dan melacak penyebab pasti kebuntuan tersebut.

    • Pengguna B tampaknya hanya mengalami kebuntuan tanpa output apa pun. RestClient pada Java SDK memiliki mekanisme retry bawaan. Jika sistem mencatat log error pada setiap retry, masalah dapat cepat diidentifikasi.

  • Langkah Penanganan

    • Hasilkan Instance Logview menggunakan MaxCompute Java SDK.

      MaxCompute Java SDK menyediakan antarmuka Logview. Untuk informasi selengkapnya, lihat Contoh Instance Logview.

      Catatan
      • Saat menggunakan Java SDK, pastikan Anda mencatat Logview untuk setiap Instance agar dapat segera melacak masalah jika terjadi error.

      • Di klien MaxCompute (odpscmd), Anda dapat menjalankan perintah WAIT<instance_id> untuk mendapatkan tautan Logview.

    • Catat log error setiap kali operasi RestClient Retry dilakukan.

      MaxCompute Java SDK menyediakan kelas abstrak RetryLogger. Untuk informasi selengkapnya, lihat Contoh Pencatatan Log Error.

Saat menjalankan kode MaxCompute, muncul error java.lang.ClassNotFoundException, bagaimana mengatasinya?

Error tersebut terjadi karena Anda belum mengimpor dependensi yang relevan atau mengimpor paket yang sama secara berulang. Periksa konfigurasi lingkungan lokal Anda.

Jika error ini muncul saat menjalankan job MapReduce di MaxCompute, pastikan Anda telah mengimpor paket dependensi melalui parameter -resources.

Saat menjalankan kode MaxCompute, muncul peringatan OpenJDK 64-Bit Server VM, bagaimana mengatasinya?

  • Fenomena Masalah

    Pesan error sebagai berikut.

    OpenJDK 64-Bit Server VM warning: Insufficient space for shared memory
  • Penyebab

    Error tersebut terjadi karena ruang direktori file sementara tidak mencukupi.

  • Langkah Penanganan

    Anda dapat menggunakan perintah df untuk memeriksa dan membersihkan ruang direktori file sementara.