Anda dapat membuat node ODPS MR untuk menulis dan menjadwalkan program MapReduce yang memproses data di MaxCompute menggunakan MapReduce Java API.
Prasyarat
-
Anda telah mengunggah, mengirimkan, dan menerbitkan resource yang diperlukan. Untuk informasi selengkapnya, lihat Buat dan gunakan resource MaxCompute.
-
Anda telah membuat node ODPS MR. Untuk informasi selengkapnya, lihat Buat dan kelola node MaxCompute.
Anda harus mengunggah, mengirimkan, dan menerbitkan resource yang diperlukan sebelum membuat node ODPS MR.
Latar Belakang
MapReduce adalah kerangka kerja pemrograman terdistribusi yang menggabungkan logika bisnis buatan pengguna dengan komponen bawaan untuk dijalankan secara konkuren pada kluster Hadoop. MaxCompute menyediakan dua versi antarmuka pemrograman MapReduce. Untuk informasi selengkapnya, lihat MapReduce.
-
MaxCompute MapReduce: Antarmuka native MaxCompute yang menyediakan eksekusi cepat dan pengembangan efisien tanpa mengekspos sistem file.
-
Extended MaxCompute MapReduce (MR2): Ekstensi dari MaxCompute MapReduce yang mendukung logika penjadwalan pekerjaan yang lebih kompleks dengan implementasi serupa antarmuka native.
Di DataWorks, Anda dapat menggunakan node ODPS MR untuk menjadwalkan dan menjalankan tugas MaxCompute MapReduce serta mengintegrasikannya dengan pekerjaan lain.
Batasan
Untuk batasan node ODPS MR, lihat Batasan penggunaan.
Contoh: Pekerjaan WordCount sederhana
Contoh ini menggunakan node ODPS MR untuk menghitung kemunculan setiap string dalam tabel wc_in dan menulis hasilnya ke tabel wc_out.
-
Unggah, kirimkan, dan terbitkan resource mapreduce-examples.jar. Untuk informasi selengkapnya, lihat Buat dan gunakan resource MaxCompute.
CatatanUntuk informasi selengkapnya tentang logika implementasi dalam paket mapreduce-examples.jar, lihat Contoh WordCount.
-
Masukkan kode berikut ke dalam node ODPS MR dan jalankan.
-- Create the input table. CREATE TABLE if not exists wc_in (key STRING, value STRING); -- Create the output table. CREATE TABLE if not exists wc_out (key STRING, cnt BIGINT); --- Create the system dual table. drop table if exists dual; create table dual(id bigint); -- If this pseudo-table does not exist in the workspace, you must create it and initialize data. --- Initialize the data in the system pseudo-table. insert overwrite table dual select count(*)from dual; --- Insert sample data into the input table 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; -- Reference the JAR resource that you just uploaded. You can find this resource in the resource list, right-click the resource, and then select Reference Resources. --@resource_reference{"mapreduce-examples.jar"} jar -resources mapreduce-examples.jar -classpath ./mapreduce-examples.jar com.aliyun.odps.mapred.open.example.WordCount wc_in wc_outKode tersebut mencakup pernyataan dan parameter berikut:
-
--@resource_reference: Anda dapat mengklik kanan nama resource dan memilih Insert Resource Path untuk menghasilkan pernyataan ini secara otomatis. -
-resources: Nama file resource JAR yang dirujuk. -
-classpath: Jalur ke paket JAR. Karena resource sudah dirujuk, jalurnya mengarah ke file JAR di direktori saat ini (./). -
com.aliyun.odps.mapred.open.example.WordCount: Nama lengkap kelas utama yang akan dieksekusi dari file JAR. -
wc_in: Nama tabel input untuk pekerjaan MapReduce. Tabel ini dibuat dalam kode sebelumnya. -
wc_out: Nama tabel output untuk pekerjaan MapReduce. Tabel ini dibuat dalam kode sebelumnya. -
Jika pekerjaan MapReduce memerlukan beberapa resource JAR, pisahkan jalurnya dengan koma, misalnya
-classpath ./xxxx1.jar,./xxxx2.jar.
Hasil: OK
-
-
Pada node ODPS SQL, jalankan perintah berikut untuk mengkueri data di tabel wc_out.
select * from wc_out;Output yang diharapkan:
+------------+------------+ | key | cnt | +------------+------------+ | package | 1 | | pad | 1 | | problem | 1 | | project | 1 | | val_a | 2 | | val_pro | 2 | +------------+------------+
Contoh lanjutan
Untuk skenario tambahan dalam mengembangkan tugas MaxCompute MapReduce, lihat topik berikut:
Langkah selanjutnya
Setelah mengembangkan node, lakukan operasi berikut sesuai kebutuhan:
-
Konfigurasi penjadwalan: Konfigurasikan properti penjadwalan periodik seperti pengaturan ulang eksekusi dan dependensi untuk tugas yang dijalankan secara berkala. Ikhtisar konfigurasi penjadwalan tugas.
-
Debugging tugas: Uji dan jalankan kode node untuk memverifikasi logikanya. Proses debugging tugas.
-
Penerapan tugas: Terapkan node agar dijalankan secara periodik berdasarkan konfigurasi penjadwalannya. Terapkan tugas.
-
FAQ MapReduce: Masalah umum dan troubleshooting untuk tugas MapReduce.