Hadoop में MapReduce क्या है?
MapReduce एक सॉफ्टवेयर फ्रेमवर्क और प्रोग्रामिंग मॉडल है जिसका उपयोग भारी मात्रा में डेटा को संसाधित करने के लिए किया जाता है। MapReduce कार्यक्रम दो चरणों में काम करता है, अर्थात्, मानचित्र और कमी। मानचित्र कार्य डेटा के विभाजन और मानचित्रण से निपटते हैं जबकि कार्यों में फेरबदल करते हैं और डेटा को कम करते हैं।
Hadoop विभिन्न भाषाओं में लिखे गए MapReduce प्रोग्राम चलाने में सक्षम है: जावा, रूबी, पायथन और C ++। क्लाउड कंप्यूटिंग में मैप रिड्यूस के कार्यक्रम प्रकृति में समानांतर हैं, इस प्रकार क्लस्टर में कई मशीनों का उपयोग करके बड़े पैमाने पर डेटा विश्लेषण करने के लिए बहुत उपयोगी हैं।
प्रत्येक चरण का इनपुट कुंजी-मूल्य जोड़े है। इसके अलावा, प्रत्येक प्रोग्रामर को दो फ़ंक्शन निर्दिष्ट करने की आवश्यकता होती है: फ़ंक्शन को मैप करें और फ़ंक्शन को कम करें ।
इस शुरुआत Hadoop MapReduce ट्यूटोरियल में, आप सीखेंगे-
- Hadoop में MapReduce क्या है?
- बिग डेटा में MapReduce Architecture के बारे में विस्तार से बताया
- MapReduce Architecture के बारे में विस्तार से बताया
- MapReduce कैसे काम करता है?
बिग डेटा में MapReduce Architecture के बारे में विस्तार से बताया
पूरी प्रक्रिया निष्पादन के चार चरणों में विभाजित होती है, जैसे, विभाजन, मानचित्रण, फेरबदल और कम करना।
अब इस MapReduce ट्यूटोरियल में, एक MapReduce उदाहरण के साथ समझते हैं-
विचार करें कि बिग डेटा प्रोग्राम में आपके MapReduce के लिए निम्नलिखित इनपुट डेटा हैं
Welcome to Hadoop ClassHadoop is goodHadoop is bad
MapReduce कार्य का अंतिम आउटपुट है
खराब | 1 |
कक्षा | 1 |
अच्छा न | 1 |
Hadoop | ३ |
है | २ |
सेवा मेरे | 1 |
स्वागत हे | 1 |
बिग डेटा में MapReduce के निम्न चरणों के माध्यम से डेटा जाता है
इनपुट विभाजन:
बिग डेटा काम में एक MapReduce के लिए इनपुट को निश्चित आकार के टुकड़ों में विभाजित किया जाता है, जिसे इनपुट विभाजन कहा जाता है। इनपुट विभाजन उस इनपुट का एक हिस्सा है जो एकल मानचित्र द्वारा खपत होता है
मानचित्रण
यह मानचित्र-कम कार्यक्रम के निष्पादन में पहला चरण है। इस चरण में प्रत्येक स्प्लिट में डेटा आउटपुट मान उत्पन्न करने के लिए एक मैपिंग फ़ंक्शन को पास किया जाता है। हमारे उदाहरण में, मैपिंग चरण का काम इनपुट विभाजन से प्रत्येक शब्द की कई घटनाओं की गणना करना है (इनपुट-विभाजन के बारे में अधिक विवरण नीचे दिया गया है) और <शब्द, आवृत्ति> के रूप में एक सूची तैयार करें
पुथल
यह चरण मैपिंग चरण के आउटपुट का उपभोग करता है। इसका कार्य मैपिंग चरण आउटपुट से संबंधित रिकॉर्ड को समेकित करना है। हमारे उदाहरण में, समान शब्दों को उनकी संबंधित आवृत्ति के साथ एक साथ जोड़ा जाता है।
कमी
इस चरण में, Shuffling चरण से आउटपुट मान एकत्र किए जाते हैं। यह चरण Shuffling चरण के मानों को जोड़ता है और एकल आउटपुट मान देता है। संक्षेप में, यह चरण संपूर्ण डेटासेट को सारांशित करता है।
हमारे उदाहरण में, यह चरण Shuffling चरण से मानों को एकत्रित करता है अर्थात, प्रत्येक शब्द की कुल घटनाओं की गणना करता है।
MapReduce Architecture के बारे में विस्तार से बताया
- प्रत्येक विभाजन के लिए एक मानचित्र कार्य बनाया जाता है जो विभाजन में प्रत्येक रिकॉर्ड के लिए मानचित्र फ़ंक्शन को निष्पादित करता है।
- हमेशा एक से अधिक विभाजन करना फायदेमंद होता है क्योंकि विभाजन की प्रक्रिया में लगने वाला समय पूरे इनपुट के प्रसंस्करण के समय की तुलना में छोटा होता है। जब विभाजन छोटे होते हैं, तो प्रसंस्करण को संतुलित करना बेहतर होता है क्योंकि हम समानांतर में विभाजन को संसाधित कर रहे होते हैं।
- हालांकि, आकार में बहुत कम विभाजन होना भी वांछनीय नहीं है। जब विभाजन बहुत छोटा होता है, तो विभाजन के प्रबंधन का अधिभार और मानचित्र कार्य निर्माण कुल नौकरी निष्पादन समय पर हावी होने लगता है।
- अधिकांश नौकरियों के लिए, एचडीएफएस ब्लॉक (जो कि 64 एमबी, डिफ़ॉल्ट रूप से) के आकार के बराबर विभाजन आकार बनाना बेहतर है।
- मानचित्र कार्यों के निष्पादन से संबंधित नोड पर स्थानीय डिस्क पर आउटपुट लिखने में परिणाम होता है और एचडीएफएस के लिए नहीं।
- एचडीएफएस स्टोर ऑपरेशन के मामले में होने वाली प्रतिकृति से बचने के लिए एचडीएफएस पर स्थानीय डिस्क चुनने का कारण है।
- मैप आउटपुट इंटरमीडिएट आउटपुट है जिसे अंतिम आउटपुट का उत्पादन करने के लिए कार्यों को कम करके संसाधित किया जाता है।
- एक बार नौकरी पूरी हो जाने के बाद, मैप आउटपुट को फेंक दिया जा सकता है। तो, प्रतिकृति के साथ HDFS में इसे संग्रहीत करना ओवरकिल हो जाता है।
- नोड की विफलता की स्थिति में, मानचित्र आउटपुट को कम कार्य द्वारा खपत किए जाने से पहले, Hadoop दूसरे नोड पर मानचित्र कार्य को पुन: चलाता है और मानचित्र आउटपुट को पुन: बनाता है।
- कार्य को कम करना डेटा इलाके की अवधारणा पर काम नहीं करता है। हर मैप टास्क का आउटपुट कम टास्क को फीड किया जाता है। मैप आउटपुट को मशीन में स्थानांतरित किया जाता है जहां कार्य कम हो रहा है।
- इस मशीन पर, आउटपुट को मर्ज किया जाता है और फिर उपयोगकर्ता द्वारा परिभाषित कम फ़ंक्शन को पास किया जाता है।
- मैप आउटपुट के विपरीत, एचडीएसएफ में कम आउटपुट स्टोर किया जाता है (पहली प्रतिकृति को स्थानीय नोड पर संग्रहीत किया जाता है और अन्य प्रतिकृति को ऑफ-रैक नोड्स पर संग्रहीत किया जाता है)। इसलिए, आउटपुट कम करें
MapReduce कैसे काम करता है?
अब इस MapReduce ट्यूटोरियल में, हम सीखेंगे कि MapReduce कैसे काम करता है
Hadoop कार्यों में कार्य को विभाजित करता है। दो प्रकार के कार्य हैं:
- मानचित्र कार्य (विभाजन और मानचित्रण)
- कार्य कम करें (फेरबदल, कम करना)
जैसा कि ऊपर उल्लेख किया गया है।
पूर्ण निष्पादन प्रक्रिया (मानचित्र और कार्य को कम करना, दोनों का निष्पादन) को दो प्रकार की संस्थाओं द्वारा नियंत्रित किया जाता है जिन्हें a कहा जाता है
- नौकरीपेशा : एक मास्टर की तरह काम करता है (प्रस्तुत नौकरी के पूर्ण निष्पादन के लिए जिम्मेदार)
- मल्टीपल टास्क ट्रैकर्स : गुलामों की तरह काम करते हैं , उनमें से प्रत्येक कार्य करता है
प्रणाली में निष्पादन के लिए प्रस्तुत हर काम के लिए, वहाँ एक है Jobtracker कि पर रहता है Namenode और देखते हैं कई tasktrackers जिस पर रहते हैं Datanode ।

- एक कार्य को कई कार्यों में विभाजित किया जाता है जो तब एक क्लस्टर में कई डेटा नोड्स पर चलाए जाते हैं।
- यह कार्य ट्रैकर की जिम्मेदारी है कि वह अलग-अलग डेटा नोड्स पर चलने वाले कार्यों को शेड्यूल करके गतिविधि को समन्वयित करें।
- व्यक्तिगत कार्य का निष्पादन तब कार्य ट्रैकर की देखभाल के लिए होता है, जो नौकरी के हर डेटा नोड को निष्पादित करने वाले भाग पर रहता है।
- कार्य ट्रैकर की जिम्मेदारी नौकरी ट्रैकर को प्रगति रिपोर्ट भेजना है।
- इसके अलावा, कार्य ट्रैकर समय-समय पर जॉबट्रैकर को 'दिल की धड़कन' संकेत भेजता है ताकि उसे सिस्टम की वर्तमान स्थिति के बारे में सूचित किया जा सके।
- इस प्रकार जॉब ट्रैकर प्रत्येक कार्य की समग्र प्रगति पर नज़र रखता है। टास्क फेल होने की स्थिति में, जॉब ट्रैकर इसे अलग टास्क ट्रैकर पर रीशेड्यूल कर सकता है।