कुछ साल पहले, MapReduce का वितरण प्रोग्रामिंग की क्रांति के रूप में किया गया था। आलोचक भी रहे हैं लेकिन बड़े और उत्साह से भरे थे। यह भी पेटेंट हो गया! [1]
यह नाम कार्यात्मक प्रोग्रामिंग में map
और उसकी याद दिलाता है reduce
, लेकिन जब मैं पढ़ता हूं (विकिपीडिया)
नक्शा चरण: मास्टर नोड इनपुट लेता है, इसे छोटी उप-समस्याओं में विभाजित करता है, और उन्हें कार्यकर्ता नोड्स में वितरित करता है। एक कार्यकर्ता नोड बदले में ऐसा कर सकता है, जिससे बहु-स्तरीय वृक्ष संरचना हो सकती है। कार्यकर्ता नोड छोटी समस्या को संसाधित करता है, और उत्तर को अपने मास्टर नोड पर वापस भेजता है।
चरण कम करें: मास्टर नोड तब सभी उप-समस्याओं के उत्तर एकत्र करता है और उन्हें आउटपुट बनाने के लिए किसी तरह से जोड़ता है - समस्या का उत्तर जो मूल रूप से हल करने की कोशिश कर रहा था।
या [२]
एमएपी के आंतरिक: [...] एमएपी इनपुट मूल्य को शब्दों में विभाजित करता है। [...] एमएपी का अर्थ इनपुट के प्रत्येक दिए गए कुंजी / मूल्य जोड़ी को संभावित रूप से कई मध्यवर्ती कुंजी / मूल्य जोड़े के साथ जोड़ना है।
REDUCE के आंतरिक: [...] [REDUCE] अनिवार्य एकत्रीकरण (कहते हैं, कमी) करते हैं: कई मान लेते हैं, और उन्हें एक मूल्य पर कम करते हैं।
मैं मदद नहीं कर सकता, लेकिन सोचता हूं: यह विभाजन और विजय (मेरजसॉर्ट के अर्थ में), सादा और सरल है! तो, MapReduce में वैचारिक (वैचारिक) नवीनता कहीं है, या यह कुछ परिदृश्यों में उपयोगी पुराने विचारों का एक नया कार्यान्वयन है?
- यूएस पेटेंट 7,650,331: "सिस्टम और कुशल बड़े पैमाने पर डेटा प्रसंस्करण के लिए विधि" (2010)
- Google का MapReduce प्रोग्रामिंग मॉडल - R. Lämmel (2007) द्वारा पुनरीक्षित