Beberapa tahun yang lalu, MapReduce dipuji sebagai revolusi pemrograman terdistribusi. Ada juga kritikus tetapi pada umumnya ada hype antusiasme. Bahkan dipatenkan! [1]
Namanya mengingatkan map
dan reduce
dalam pemrograman fungsional, tetapi ketika saya membaca (Wikipedia)
Langkah peta: Node master mengambil input, membaginya menjadi sub-masalah yang lebih kecil, dan mendistribusikannya ke node pekerja. Node pekerja dapat melakukan ini lagi pada gilirannya, yang mengarah ke struktur pohon multi-level. Node pekerja memproses masalah yang lebih kecil, dan meneruskan jawabannya kembali ke node masternya.
Kurangi langkah: Master node kemudian mengumpulkan jawaban untuk semua sub-masalah dan menggabungkan mereka dalam beberapa cara untuk membentuk output - jawaban untuk masalah yang pada awalnya berusaha dipecahkan.
atau [2]
Internal MAP: [...] MAP membagi nilai input menjadi kata-kata. [...] MAP dimaksudkan untuk mengaitkan setiap pasangan kunci / nilai yang diberikan dari input dengan banyak pasangan kunci / nilai potensial.
Internal REDUCE: [...] [REDUCE] melakukan agregasi imperatif (katakanlah, reduksi): ambil banyak nilai, dan kurangi menjadi satu nilai.
Saya tidak bisa tidak berpikir: ini membagi & menaklukkan (dalam arti Mergesort), sederhana dan sederhana! Jadi, apakah ada kebaruan (konseptual) di MapReduce di suatu tempat, atau itu hanya implementasi baru dari ide-ide lama yang berguna dalam skenario tertentu?