इसमें Hadoop ब्लॉग, हम आपको MapReduce नौकरी निष्पादन प्रवाह को समाप्त करने के लिए एक अंत प्रदान करने जा रहे हैं। यहां हम प्रत्येक घटक का वर्णन करेंगे जो कि MapReduce का हिस्सा है जो विस्तार से काम कर रहा है।
यह ब्लॉग आपको जवाब देने में मदद करेगा कि Hadoop MapReduce कैसे काम करता है, MapReduce में डेटा कैसे प्रवाहित होता है, Hadoop में Mapreduce जॉब कैसे निष्पादित होता है?
MapReduce क्या है?
Hadoop MapReduce डाटा प्रोसेसिंग परत है। यह एचडीएफएस में संग्रहीत बड़ी मात्रा में संरचित और असंरचित डेटा को संसाधित करता है। MapReduce कार्य को स्वतंत्र कार्यों के सेट में विभाजित करके डेटा को समानांतर में संसाधित करता है। इसलिए, समानांतर प्रसंस्करण गति और विश्वसनीयता में सुधार करता है।
Hadoop MapReduce डेटा प्रोसेसिंग 2 चरणों में होती है- मैप और रिड्यूस फेज।
- मानचित्र चरण- यह डाटा प्रोसेसिंग का पहला चरण है। इस चरण में, हम सभी जटिल तर्क/व्यावसायिक नियम/महंगे कोड निर्दिष्ट करते हैं।
- चरण कम करें- यह प्रसंस्करण का दूसरा चरण है। इस चरण में, हम एकत्रीकरण/समीकरण जैसे हल्के प्रसंस्करण को निर्दिष्ट करते हैं।
MapReduce कार्य निष्पादन प्रवाह के चरण
MapReduce विभिन्न घटकों की मदद से डेटा को विभिन्न चरणों में संसाधित करता है। आइए Hadoop में कार्य निष्पादन के चरणों पर चर्चा करें।
<एच4>1. इनपुट फ़ाइलेंइनपुट फाइलों में MapReduce जॉब के लिए डेटा संग्रहीत किया जाता है। में एचडीएफएस , इनपुट फ़ाइलें रहती हैं। इनपुट फ़ाइल स्वरूप मनमाना है। लाइन-आधारित लॉग फ़ाइलें और बाइनरी प्रारूप का भी उपयोग किया जा सकता है।
<एच4>2. इनपुटफ़ॉर्मैटउसके बाद InputFormat परिभाषित करता है कि इन इनपुट फ़ाइलों को कैसे विभाजित और पढ़ा जाए। यह इनपुट के लिए फाइलों या अन्य वस्तुओं का चयन करता है। InputFormat InputSplit बनाता है।
<एच4>3. इनपुट स्प्लिट्सयह उस डेटा का प्रतिनिधित्व करता है जिसे एक व्यक्ति मैपर . द्वारा संसाधित किया जाएगा . प्रत्येक विभाजन के लिए, एक नक्शा कार्य बनाया जाता है। इस प्रकार मानचित्र कार्यों की संख्या इनपुटस्प्लिट्स की संख्या के बराबर होती है। फ़्रेमवर्क विभाजन को रिकॉर्ड में विभाजित करता है, जो मैपर प्रक्रिया करता है।
<एच4>4. रिकॉर्ड रीडरयह इनपुटस्प्लिट के साथ संचार करता है। और फिर डेटा को की-वैल्यू पेयर . में कनवर्ट करता है मैपर द्वारा पढ़ने के लिए उपयुक्त। डेटा को की-वैल्यू पेयर में बदलने के लिए RecordReader डिफ़ॉल्ट रूप से TextInputFormat का उपयोग करता है।
यह फ़ाइल पढ़ने के पूरा होने तक इनपुटस्प्लिट से संचार करता है। यह फ़ाइल में मौजूद प्रत्येक पंक्ति को बाइट ऑफ़सेट प्रदान करता है। फिर, इन की-वैल्यू पेयर को आगे की प्रक्रिया के लिए मैपर के पास भेज दिया जाता है।
5. मैपर
यह RecordReader द्वारा निर्मित इनपुट रिकॉर्ड को प्रोसेस करता है और इंटरमीडिएट की-वैल्यू पेयर उत्पन्न करता है। इंटरमीडिएट आउटपुट इनपुट जोड़ी से बिल्कुल अलग है। मैपर का आउटपुट की-वैल्यू पेयर का पूरा संग्रह होता है।
Hadoop फ्रेमवर्क HDFS पर मैपर के आउटपुट को स्टोर नहीं करता है। यह स्टोर नहीं होता है, क्योंकि डेटा अस्थायी है और एचडीएफएस पर लिखने से अनावश्यक कई प्रतियां बन जाएंगी। फिर मैपर आगे की प्रक्रिया के लिए आउटपुट को कंबाइनर को भेजता है।
<एच4>4. संयोजककॉम्बिनर मिनी-रेड्यूसर है जो मैपर के आउटपुट पर स्थानीय एकत्रीकरण करता है। यह मैपर और रेड्यूसर के बीच डेटा ट्रांसफर को कम करता है। इसलिए, जब कॉम्बिनर की कार्यक्षमता पूरी हो जाती है, तो फ्रेमवर्क आउटपुट को आगे की प्रक्रिया के लिए पार्टीशनर को भेजता है।
5. पार्टिशनर
यदि हम एक से अधिक रिड्यूसर के साथ काम कर रहे हैं तो पार्टिशनर अस्तित्व में आता है। यह कॉम्बिनर का आउटपुट लेता है और विभाजन करता है।
MapReduce में कुंजी के आधार पर आउटपुट का विभाजन होता है। हैश फ़ंक्शन द्वारा, कुंजी (या कुंजी का एक उपसमुच्चय) विभाजन को व्युत्पन्न करता है।
MapReduce में प्रमुख मूल्य के आधार पर, प्रत्येक संयोजक आउटपुट का विभाजन होता है। और फिर वही कुंजी मान वाला रिकॉर्ड उसी विभाजन में चला जाता है। उसके बाद, प्रत्येक विभाजन एक रेड्यूसर को भेजा जाता है।
MapReduce निष्पादन में विभाजन करने से मानचित्र आउटपुट को रेड्यूसर पर समान रूप से वितरित करने की अनुमति मिलती है।
<एच4>6. फेरबदल और छँटाईविभाजन के बाद, आउटपुट को कम नोड में बदल दिया जाता है। फेरबदल डेटा का भौतिक संचलन है जो नेटवर्क पर किया जाता है। जैसा कि सभी मैपर रेड्यूसर नोड्स पर आउटपुट को पूरा करते हैं और फेरबदल करते हैं।
फिर फ्रेमवर्क इस इंटरमीडिएट आउटपुट और सॉर्ट को मर्ज करता है। इसके बाद चरण को कम करने के लिए इनपुट के रूप में प्रदान किया जाता है।
<एच4>7. रेड्यूसररेड्यूसर फिर इनपुट के रूप में मैपर द्वारा निर्मित इंटरमीडिएट की-वैल्यू पेयर का सेट लेता है। उसके बाद आउटपुट उत्पन्न करने के लिए उनमें से प्रत्येक पर एक रेड्यूसर फ़ंक्शन चलाता है।
रेड्यूसर का आउटपुट अंतिम आउटपुट है। फिर फ्रेमवर्क आउटपुट को एचडीएफएस पर स्टोर करता है।
8. रिकॉर्ड राइटर
यह इन आउटपुट की-वैल्यू पेयर को रिड्यूसर फेज से आउटपुट फाइल में लिखता है।
9. आउटपुटफ़ॉर्मैट
OutputFormat परिभाषित करता है कि कैसे RecordReader आउटपुट फाइल में इन आउटपुट की-वैल्यू पेयर को लिखता है। तो, Hadoop द्वारा प्रदान किए गए इसके उदाहरण HDFS में फाइलें लिखते हैं। इस प्रकार OutputFormat उदाहरण HDFS पर रिड्यूसर का अंतिम आउटपुट लिखते हैं।
निष्कर्ष
हमने कदम दर कदम MapReduce कार्य निष्पादन प्रवाह सीखा है। मुझे आशा है कि यह ब्लॉग आपको MapReduce की कार्यप्रणाली को समझने में बहुत मदद करेगा।
यदि फिर भी, आपके पास MapReduce कार्य निष्पादन प्रवाह से संबंधित कोई प्रश्न है, तो आप नीचे दिए गए टिप्पणी अनुभाग में हमारे साथ साझा कर सकते हैं। हम उन्हें हल करने की पूरी कोशिश करेंगे।