MaxCompute menyediakan antarmuka pemrograman MapReduce. Anda dapat membuat dan menjadwalkan node MaxCompute MR, lalu menggunakan MapReduce Java API untuk menulis program MapReduce yang memproses dataset berskala besar di MaxCompute.
Latar Belakang
MapReduce adalah kerangka kerja komputasi terdistribusi yang menggabungkan kode logika bisnis yang ditulis pengguna dengan komponen bawaan untuk membentuk program terdistribusi lengkap yang berjalan secara konkuren pada kluster Hadoop. MaxCompute menyediakan dua versi antarmuka pemrograman MapReduce. Untuk informasi selengkapnya, lihat MapReduce.
-
MaxCompute MapReduce: API native untuk MaxCompute yang memungkinkan eksekusi cepat dan pengembangan efisien tanpa mengekspos sistem file.
-
Extended MaxCompute MapReduce (MR2): Ekstensi dari MaxCompute MapReduce yang mendukung logika penjadwalan pekerjaan lebih kompleks dengan implementasi yang sama seperti API native MaxCompute.
Di DataWorks, Anda dapat menggunakan node MaxCompute MR untuk menjadwalkan dan menjalankan task MaxCompute MapReduce serta mengintegrasikannya dengan pekerjaan lain.
Prasyarat
-
Resource komputasi MaxCompute telah disambungkan ke ruang kerja DataWorks.
-
Resource yang diperlukan telah diunggah dan dideploy. Untuk informasi selengkapnya, lihat manajemen sumber daya.
Anda harus mengunggah dan mendeplai resource yang diperlukan sebelum membuat node MaxCompute MR.
Batasan
Untuk informasi mengenai batasan pada node MaxCompute MR, lihat Batasan.
Prosedur
-
Pada halaman editor node MaxCompute MR, ikuti langkah-langkah pengembangan berikut.
Kembangkan kode MR
Contoh berikut menunjukkan cara menggunakan node MaxCompute MR untuk
menghitung kemunculan setiap string dalam tabel wc_in dan menulis hasilnya ke tabel wc_out.-
Unggah, kirim, dan deploy resource mapreduce-examples.jar. Untuk informasi selengkapnya, lihat manajemen sumber daya.
CatatanUntuk informasi mengenai logika implementasi dalam paket
mapreduce-examples.jar, lihat Contoh WordCount. -
Di editor node MaxCompute MR, masukkan kode contoh berikut.
--Buat tabel input. CREATE TABLE IF NOT EXISTS wc_in (key STRING, VALUE STRING); --Buat tabel output. CREATE TABLE IF NOT EXISTS wc_out (key STRING, cnt BIGINT); ---Buat tabel dual sistem. DROP TABLE IF EXISTS dual; CREATE TABLE dual(id BIGINT); --Jika ruang kerja tidak memiliki tabel pseudo ini, Anda perlu membuatnya dan menginisialisasi datanya. ---Inisialisasi data untuk tabel pseudo sistem. INSERT OVERWRITE TABLE dual SELECT count(*) FROM dual; ---Masukkan data sampel ke tabel input wc_in. INSERT OVERWRITE TABLE wc_in SELECT * FROM ( SELECT 'project','val_pro' FROM dual UNION ALL SELECT 'problem','val_pro' FROM dual UNION ALL SELECT 'package','val_a' FROM dual UNION ALL SELECT 'pad','val_a' FROM dual ) b; -- Referensikan resource JAR yang baru saja diunggah. Anda dapat menemukan resource tersebut di panel manajemen sumber daya, klik kanan untuk mereferensikannya. --@resource_reference{"mapreduce-examples.jar"} jar -resources mapreduce-examples.jar -classpath ./mapreduce-examples.jar com.aliyun.odps.mapred.open.example.WordCount wc_in wc_outCatatanKode tersebut dijelaskan sebagai berikut:
-
--@resource_reference: Anda dapat mengklik kanan nama resource di bagian manajemen sumber daya dan memilih Insert Resource Path untuk menghasilkan pernyataan ini secara otomatis. -
-resources: Nama file resource JAR yang direferensikan. -
-classpath: Jalur paket JAR. Karena resource telah direferensikan, jalurnya secara seragam diatur ke paket JAR di bawah./. -
com.aliyun.odps.mapred.open.example.WordCount: Kelas utama yang dipanggil saat eksekusi. Nilai ini harus sama dengan nama kelas utama dalam paket JAR. -
wc_in: Nama tabel input MR, yang telah dibuat dalam kode sebelumnya. -
wc_out: Nama tabel output MR, yang telah dibuat dalam kode sebelumnya. -
Saat task MR memanggil beberapa resource JAR, classpath ditentukan dalam format berikut:
-classpath ./xxxx1.jar,./xxxx2.jar. Jalur-jalur tersebut dipisahkan dengan koma (,).
-
Jalankan task MR
-
Di Run Configuration, konfigurasikan Compute Resource, Compute Quota, dan Resource Group.
CatatanUntuk mengakses sumber data di lingkungan jaringan publik atau jaringan VPC, Anda harus menggunakan kelompok sumber daya untuk penjadwalan yang telah lulus uji konektivitas dengan sumber data tersebut. Untuk informasi selengkapnya, lihat Konektivitas jaringan.
-
Di dialog parameter pada bilah alat, pilih sumber data MaxCompute yang telah Anda buat, lalu klik Run untuk menjalankan task MR.
(Opsional) Kueri hasilnya
Kueri data di tabel output
wc_outdengan menggunakan node MaxCompute SQL.SELECT * FROM wc_out;Hasil:
+------------+------------+ | key | cnt | +------------+------------+ | package | 1 | | pad | 1 | | problem | 1 | | project | 1 | | val_a | 2 | | val_pro | 2 | +------------+------------+ -
-
Untuk menjalankan task node secara berkala, konfigurasikan pengaturan jadwal sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Pengaturan jadwal.
-
Setelah task node dikonfigurasi, Anda harus mendeplai node tersebut. Untuk informasi selengkapnya, lihat Deploy a node.
-
Setelah task dideplai, Anda dapat melihat status berjalan task terjadwal di Operation Center. Untuk informasi selengkapnya, lihat Tugas terjadwal.
Referensi
Untuk skenario pengembangan task ODPS MR lainnya, lihat topik-topik berikut:
FAQ: Anda dapat mempelajari isu umum yang mungkin terjadi selama eksekusi task MR dan melakukan troubleshooting dengan cepat. Untuk informasi selengkapnya, lihat FAQ.