मैप रिड्यूस और डेटा-पैरेलल प्रोसेसिंग
मैप रिड्यूस और इसके उत्तराधिकारी प्रोग्रामिंग मॉडल और फ्रेमवर्क हैं जो कमोडिटी मशीनों के क्लस्टर में बहुत बड़े डेटा सेट को समानांतर में संसाधित करते हैं, स्वचालित रूप से वितरण, शेड्यूलिंग और दोष सहिष्णुता को संभालते हैं।
Definition
मैप रिड्यूस एक प्रोग्रामिंग मॉडल है जिसमें एक गणना को एक मैप फ़ंक्शन के रूप में व्यक्त किया जाता है जो कुंजी-मान युग्मों का उत्सर्जन करता है और एक रिड्यूस फ़ंक्शन जो प्रत्येक कुंजी के लिए मानों को एकत्रित करता है, जिसे फ्रेमवर्क-प्रबंधित वितरण और दोष सहिष्णुता के साथ एक क्लस्टर में विभाजित डेटा पर समानांतर में निष्पादित किया जाता है।
Scope
यह विषय मैप रिड्यूस मॉडल को कवर करता है — कुंजी-मान युग्मों पर गणना को मैप और रिड्यूस फ़ंक्शन के रूप में व्यक्त करना, जिसके बीच में एक स्वचालित शफल होता है — और विभाजन, शेड्यूलिंग और पुनः-निष्पादन के माध्यम से दोष सहिष्णुता की आसपास की निष्पादन मशीनरी। यह सामान्य डेटाफ्लो और इन-मेमोरी इंजनों (जैसे लचीला वितरित डेटासेट मॉडल) और उन्हें आधार देने वाले वितरित फ़ाइल सिस्टम के विकास को कवर करता है। इसमें NoSQL स्टोरेज मॉडल और संगति सिद्धांत शामिल नहीं हैं, जो आसन्न विषय हैं।
Core questions
- मैप, शफल और रिड्यूस चरण एक गणना को कैसे समानांतर करते हैं?
- फ्रेमवर्क डेटा विभाजन, शेड्यूलिंग और स्ट्रैगलर्स को कैसे संभालता है?
- विफल कार्यों के पुनः-निष्पादन के माध्यम से दोष सहिष्णुता कैसे प्राप्त की जाती है?
- कई वर्कलोड के लिए सामान्य डेटाफ्लो और इन-मेमोरी इंजनों ने मैप रिड्यूस को क्यों सफल किया?
- डेटा-पैरेलल प्रोसेसिंग में वितरित फ़ाइल सिस्टम क्या भूमिका निभाते हैं?
Key concepts
- मैप और रिड्यूस फ़ंक्शन
- शफल और सॉर्ट चरण
- डेटा विभाजन
- कार्य शेड्यूलिंग और स्ट्रैगलर्स
- पुनः-निष्पादन द्वारा दोष सहिष्णुता
- वितरित फ़ाइल सिस्टम
- डेटाफ्लो ग्राफ़
- लचीले वितरित डेटासेट
Key theories
- मैप रिड्यूस मॉडल
- प्रोग्रामर एक मैप फ़ंक्शन लिखते हैं जो इनपुट रिकॉर्ड को मध्यवर्ती कुंजी-मान युग्मों में बदलता है और एक रिड्यूस फ़ंक्शन जो एक कुंजी के लिए सभी मानों को जोड़ता है; फ्रेमवर्क समानांतर निष्पादन, कुंजी द्वारा मानों को समूहित करने वाले शफल, और विफलताओं से रिकवरी को संभालता है।
- पुनः-निष्पादन द्वारा दोष सहिष्णुता
- क्योंकि कार्य विभाजित इनपुट पर नियतात्मक फ़ंक्शन होते हैं, फ्रेमवर्क मशीन विफलताओं को केवल विफल मैप या रिड्यूस कार्यों को फिर से चलाकर सहन करता है, और यह धीमी नोड्स को स्ट्रैगलिंग कार्यों की बैकअप (सट्टा) प्रतियां लॉन्च करके कम करता है।
- इन-मेमोरी डेटाफ्लो इंजन
- बाद के सिस्टम ने मैप रिड्यूस को मनमाने डेटाफ्लो ग्राफ़ में सामान्यीकृत किया और मध्यवर्ती डेटा को मेमोरी में रखा; लचीला वितरित डेटासेट अमूर्तता वंश से उन्हें पुनर्गणना करके खोए हुए विभाजनों को पुनर्प्राप्त करता है, जिससे पुनरावृत्तीय और इंटरैक्टिव वर्कलोड में काफी तेजी आती है।
Clinical relevance
डेटा-पैरेलल प्रोसेसिंग ने क्लस्टर-स्केल गणना को सामान्य प्रोग्रामर के लिए सुलभ बना दिया: मैप रिड्यूस और इसके उत्तराधिकारी लॉग को संसाधित करते हैं, खोज सूचकांक बनाते हैं, मॉडल को प्रशिक्षित करते हैं, और पेटाबाइट्स पर विश्लेषण चलाते हैं, और वे डेटा इंजीनियरिंग और बड़े पैमाने पर डेटा विज्ञान के मूलभूत उपकरण हैं।
History
गूगल ने कमोडिटी क्लस्टर पर वेब को अनुक्रमित करने के लिए गूगल फाइल सिस्टम (2003) के शीर्ष पर मैप रिड्यूस (2004) पेश किया, और ओपन-सोर्स हैडूप ने दोनों को फिर से लागू किया, जिससे मॉडल लोकप्रिय हुआ। 2010 के दशक की शुरुआत तक, लचीले वितरित डेटासेट अमूर्तता (2012) पर निर्मित इन-मेमोरी डेटाफ्लो इंजनों ने पुनरावृत्तीय और इंटरैक्टिव विश्लेषण के लिए मैप रिड्यूस को पीछे छोड़ दिया, जबकि इसकी दोष सहिष्णुता के विचारों को बनाए रखा।
Key figures
- Jeffrey Dean
- Sanjay Ghemawat
- Matei Zaharia
Related topics
Seminal works
- dean2008
- ghemawat2003
- zaharia2012
Frequently asked questions
- अपनी सरलता के बावजूद मैप रिड्यूस इतना प्रभावशाली क्यों था?
- इसकी शक्ति इसमें छिपी हुई थी। गणना को मैप और रिड्यूस फ़ंक्शन तक सीमित करके, फ्रेमवर्क स्वचालित रूप से डेटा को विभाजित कर सकता था, हजारों मशीनों में काम को शेड्यूल कर सकता था, कार्यों को फिर से चलाकर विफलताओं से उबर सकता था, और लोड को संतुलित कर सकता था — जिससे प्रोग्रामर वितरित-सिस्टम कोड लिखे बिना विशाल डेटा सेट को संसाधित कर सकते थे।
- नए इंजनों ने कई कार्यों के लिए मैप रिड्यूस को क्यों बदल दिया?
- क्लासिक मैप रिड्यूस प्रत्येक चरण के बीच मध्यवर्ती परिणामों को डिस्क पर लिखता है, जो मशीन लर्निंग जैसे बहु-चरणीय और पुनरावृत्तीय कार्यों के लिए धीमा होता है। इन-मेमोरी डेटाफ्लो इंजन चरणों के बीच डेटा को मेमोरी में रखते हैं और समृद्ध गणना ग्राफ़ व्यक्त करते हैं, जिससे वंश-आधारित दोष सहिष्णुता को बनाए रखते हुए बड़ी गति मिलती है, इसलिए वे कई विश्लेषणात्मक वर्कलोड के लिए पसंद किए गए।