Pekerjaan MaxCompute MapReduce memproses data melalui empat tahap—Map/Reduce, Sort, Partition, dan Combiner—masing-masing dengan opsi konfigurasi yang berbeda. Pemahaman terhadap istilah-istilah ini membantu Anda merancang pekerjaan secara tepat serta men-debug hasil yang tidak sesuai harapan.
Cara kerja
Data diproses dalam pekerjaan MapReduce mengikuti urutan berikut:
(input) → map → [combine] → shuffle & sort → reduce → (output)Setiap istilah dalam topik ini terkait dengan satu tahap atau opsi konfigurasi dalam alur tersebut.
Map/Reduce
Tugas map atau reduce menjalankan tiga metode secara berurutan:
setup()— dijalankan sekali per worker sebelum pemrosesan dimulaimap()ataureduce()— dijalankan untuk setiap record inputcleanup()— dijalankan sekali per worker setelah semua record diproses
Untuk contoh yang dapat dijalankan, lihat Program contoh.
Sort
MaxCompute memungkinkan Anda mengontrol perilaku pengurutan melalui dua jenis kolom:
| Jenis kolom | Peran | Custom comparator |
|---|---|---|
| Sort columns | Menentukan urutan pengurutan. Dipilih dari kolom-kolom dalam key records yang dihasilkan oleh mapper. | Tidak didukung |
| Group columns | Subset dari sort columns. Digunakan untuk secondary sorting. | Tidak didukung |
Untuk contoh secondary sorting, lihat Kode sumber secondary sorting.
Partition
Partitioner mengarahkan data yang dihasilkan oleh mapper ke reducer yang berbeda berdasarkan logika partisi. MaxCompute mendukung dua mekanisme:
| Mekanisme | Deskripsi |
|---|---|
| Partition columns | Partisi berdasarkan kolom yang ditentukan. |
| Custom partitioners | Logika yang ditentukan pengguna untuk mengarahkan record ke reducer. |
Jika keduanya dikonfigurasi, partition columns memiliki prioritas lebih tinggi daripada custom partitioners.
Combiner
Combiner merupakan optimasi opsional dalam framework komputasi MapReduce yang dijalankan pada tahap shuffle. Combiner menggabungkan record-record yang berdekatan sehingga mengurangi volume data yang ditransfer dari mapper ke reducer.
Anda dapat menentukan penggunaan fungsi combiner berdasarkan logika bisnis Anda. Logika combiner identik dengan logika reducer: setelah mapper menghasilkan data, framework menerapkan combiner pada semua record yang memiliki kunci yang sama.
Untuk contoh yang dapat dijalankan, lihat Program contoh.