Topik ini menggunakan algoritma Single Source Shortest Path (SSSP) sebagai contoh untuk menunjukkan cara menulis pekerjaan Graph.
Prasyarat
-
Anda telah menginstal dan mengonfigurasi client MaxCompute serta terhubung ke instans MaxCompute. Untuk informasi selengkapnya, lihat MaxCompute client.
-
Anda telah menginstal dan mengonfigurasi IntelliJ IDEA 2024 serta versi MaxCompute Studio yang kompatibel yang diperbarui pada tahun 2024. Untuk informasi selengkapnya, lihat Install MaxCompute Studio dan Configure MaxCompute Studio.
-
Anda telah mengonfigurasi Apache Maven versi
apache-maven-3.5.0. -
Anda telah menginstal JDK 1.8 atau versi yang lebih baru.
-
Anda telah menyiapkan file data. Topik ini menggunakan file sssp.txt sebagai contoh.
1 2:2,3:1,4:4 2 1:2,3:2,4:1 3 1:1,2:2,5:1 4 1:4,2:1,5:1 5 3:1,4:1
Prosedur
-
Jalankan client MaxCompute dan eksekusi perintah berikut untuk membuat tabel input sssp_in dan tabel output sssp_out.
CREATE TABLE sssp_in (v bigint, es string); CREATE TABLE sssp_out (vertex bigint, value bigint); -
Jalankan perintah Tunnel untuk mengunggah data dari file sssp.txt ke tabel sssp_in dengan menggunakan spasi sebagai pemisah kolom.
tunnel u -fd " " sssp.txt sssp_in;CatatanPada contoh ini, file sssp.txt disimpan di direktori
binclient MaxCompute. Pastikan Anda menentukan path yang benar ke file sssp.txt Anda. -
Tulis contoh SSSP.
-
Di IntelliJ IDEA, buat MaxCompute Java Module dan beri nama odps-graph-example-sssp.
CatatanUntuk informasi selengkapnya, lihat Create a MaxCompute Java Module.
-
Di modul baru odps-graph-example-sssp, buat kelas
BaseLoadingVertexResolverdan kelasSSSP. Untuk kode Java lengkapnya, lihat contoh graf berarah di Single Source Shortest Path. Tambahkan dependensi berikut ke file pom.xml.<dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-core</artifactId> <version>0.48.0-public</version> </dependency> <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-graph</artifactId> <version>0.48.0-public</version> </dependency> <!-- For local testing --> <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-graph-local</artifactId> <version>0.48.0-public</version> </dependency> -
Di IntelliJ IDEA, gunakan MaxCompute Studio untuk memaketkan proyek. Untuk instruksi detailnya, lihat Package, upload, and register.
CatatanPada contoh ini, paket JAR yang dideploy ke Proyek MaxCompute diberi nama odps-graph-example-sssp.jar.
-
-
Di client MaxCompute, jalankan perintah berikut untuk menjalankan pekerjaan SSSP.
jar -libjars odps-graph-example-sssp.jar -classpath <LOCAL_JAR_PATH>/odps-graph-example-sssp.jar SSSP 1 sssp_in sssp_out;LOCAL_JAR_PATH: Path lokal ke file odps-graph-example-sssp.jar.
Setelah pekerjaan selesai, jalankan
select * from sssp_out;untuk mengkueri tabel sssp_out dan memverifikasi hasilnya.vertex value 1 0 2 2 3 1 4 3 5 2-
vertex: ID dari sebuah vertex.
-
value: Jarak terpendek dari vertex tersebut ke vertex sumber (1).
CatatanUntuk menggunakan fitur Graph, cukup kirimkan Graph job.
-