MaxCompute mendukung API MapReduce. Anda dapat membuat dan mengirimkan node ODPS MR yang memanggil API Java MapReduce untuk menulis program MapReduce dan memproses data MaxCompute.
Prasyarat
Sumber daya yang diperlukan telah diunggah, dikomit, dan diterapkan. Untuk informasi lebih lanjut, lihat Membuat dan menggunakan Sumber Daya MaxCompute.
Sebuah node ODPS MR telah dibuat. Untuk informasi lebih lanjut, lihat Membuat dan Mengelola Node MaxCompute.
Sumber daya yang diperlukan harus diunggah, dikomit, dan diterapkan sebelum Anda membuat node ODPS MR.
Informasi Latar Belakang
MapReduce adalah kerangka pemrograman untuk program komputasi terdistribusi. MapReduce dapat mengintegrasikan kode logika bisnis yang ditulis oleh pengguna dengan komponen MapReduce bawaan untuk menghasilkan program komputasi terdistribusi lengkap, yang memungkinkan Anda menjalankan pekerjaan secara bersamaan pada kluster Hadoop. MaxCompute menyediakan dua versi API MapReduce. Untuk informasi lebih lanjut, lihat Ikhtisar.
MaxCompute MapReduce: API MapReduce asli dari MaxCompute. Versi API ini berjalan cepat dan dapat digunakan untuk mengembangkan program secara efisien tanpa mengekspos sistem file.
Extended MaxCompute MapReduce (MR2): ekstensi dari MaxCompute MapReduce. Versi API ini mendukung logika yang digunakan untuk menjadwalkan pekerjaan kompleks. Metode implementasi MR2 sama dengan MaxCompute MapReduce.
Di DataWorks, Anda dapat membuat, mengirimkan, dan menerapkan node ODPS MR untuk menjadwalkan tugas MaxCompute MapReduce dan mengintegrasikan tugas MaxCompute MapReduce dengan pekerjaan lainnya.
Batasan
Untuk informasi tentang batasan pada tugas MaxCompute MapReduce, lihat Batasan.
Contoh Pengeditan Kode Sederhana
Contoh ini menunjukkan cara menggunakan node ODPS MR. Dalam contoh ini, jumlah kemunculan setiap string dalam tabel wc_in dihitung dan hasilnya ditulis ke tabel wc_out.
Unggah, komit, dan terapkan sumber daya mapreduce example.jar. Untuk informasi lebih lanjut, lihat Membuat dan menggunakan Sumber Daya MaxCompute.
CatatanUntuk informasi tentang logika implementasi di dalam paket mapreduce example.jar, lihat Contoh WordCount.
Masukkan dan jalankan kode berikut pada node ODPS MR:
-- 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. drop table if exists dual; create table dual(id bigint); -- Jika tidak ada tabel dual di ruang kerja saat ini, buat tabel dual. --- Inisialisasi tabel dual. insert overwrite table dual select count(*)from dual; --- Masukkan data sampel ke tabel 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 sumber daya JAR yang diunggah. Untuk mereferensikan sumber daya, temukan sumber daya JAR dalam daftar sumber daya, klik kanan sumber daya JAR, lalu pilih Referensikan Sumber Daya. --@resource_reference{"mapreduce-examples.jar"} jar -resources mapreduce-examples.jar -classpath ./mapreduce-examples.jar com.aliyun.odps.mapred.open.example.WordCount wc_in wc_outDeskripsi Kode:
--@resource_reference: Pernyataan ini muncul ketika Anda mengklik kanan nama sumber daya dan memilih Referensikan Sumber Daya.-resources: nama sumber daya JAR yang direferensikan.-classpath: jalur sumber daya JAR yang direferensikan. Anda hanya perlu memasukkan ./ dan nama sumber daya yang direferensikan.com.aliyun.odps.mapred.open.example.WordCount: nama kelas utama dalam sumber daya JAR yang dipanggil selama runtime node.wc_in: nama tabel input yang dibuat dari node ODPS MR.wc_out: nama tabel output yang dibuat dari node ODPS MR.Jika Anda menggunakan beberapa sumber daya JAR dalam satu node ODPS MR, pisahkan jalur sumber daya JAR yang direferensikan dengan koma (,), seperti
-classpath ./xxxx1.jar,./xxxx2.jar.
Hasil yang dikembalikan adalah OK.
Kueri data dalam tabel output wc_out menggunakan node ODPS SQL.
select * from wc_out;Hasil yang Dikembalikan:
+------------+------------+ | key | cnt | +------------+------------+ | package | 1 | | pad | 1 | | problem | 1 | | project | 1 | | val_a | 2 | | val_pro | 2 | +------------+------------+
Contoh Pengeditan Kode Lanjutan
Untuk informasi tentang cara mengembangkan tugas MaxCompute MapReduce dalam skenario lainnya, lihat topik berikut:
Apa yang Harus Dilakukan Selanjutnya
Setelah Anda menyelesaikan pengembangan tugas menggunakan node yang dibuat, Anda dapat melakukan operasi berikut:
Konfigurasikan properti penjadwalan: Anda dapat mengonfigurasi properti untuk penjadwalan periodik node. Jika Anda ingin sistem secara berkala menjadwalkan dan menjalankan tugas, Anda harus mengonfigurasi item untuk node, seperti pengaturan ulang dan dependensi penjadwalan. Untuk informasi lebih lanjut, lihat Ikhtisar.
Debug node: Anda dapat men-debug dan menguji kode node untuk memeriksa apakah logika kode sesuai dengan harapan Anda. Untuk informasi lebih lanjut, lihat Prosedur Debugging.
Terapkan node: Setelah Anda menyelesaikan semua operasi pengembangan, Anda dapat menerapkan node. Setelah node diterapkan, sistem akan secara berkala menjadwalkan node berdasarkan properti penjadwalan node. Untuk informasi lebih lanjut, lihat Terapkan Node.
FAQ tentang MaxCompute MapReduce: Anda dapat mempelajari pertanyaan yang sering diajukan dalam MaxCompute MapReduce. Dengan cara ini, Anda dapat mengidentifikasi dan menyelesaikan masalah secara efisien ketika terjadi pengecualian.