यह जानना चाहते हैं कि Hadoop वास्तव में बड़ी मात्रा में डेटा कैसे संग्रहीत और संसाधित करता है?
इस लेख में, हम अध्ययन करेंगे कि Hadoop आंतरिक रूप से कैसे काम करता है। हम देखेंगे कि Hadoop बड़े डेटासेट को कैसे स्टोर और प्रोसेस करता है। लेख Hadoop के काम करने के बारे में विस्तार से बताता है। लेख पहले Hadoop का संक्षिप्त परिचय देता है।
फिर हम Hadoop के मुख्य घटकों और Hadoop क्लस्टर में चल रहे डेमन्स को देखेंगे। इसके बाद लेख में HDFS, MapReduce और YARN जैसे इसके सभी मुख्य घटकों को शामिल करते हुए Hadoop की कार्यप्रणाली की व्याख्या की गई है।
तो आइए अब सबसे पहले Hadoop का संक्षिप्त परिचय देखें।
Hadoop का परिचय
बढ़ते बड़े डेटा के साथ, 2008 में Apache Software Foundation ने एक ओपन-सोर्स फ्रेमवर्क विकसित किया, जिसे Apache Hadoop के नाम से जाना जाता है, जो सभी बड़ी डेटा समस्याओं का समाधान है।
Apache Hadoop एक ऐसा ढांचा है जो टेराबाइट्स से लेकर पेटाबाइट्स तक के आकार में बड़ी मात्रा में असंरचित डेटा को स्टोर और प्रोसेस कर सकता है। यह अत्यधिक दोष-सहनशील और अत्यधिक उपलब्ध प्रणाली है।
Hadoop HDFS में वितरित तरीके से बड़ी मात्रा में डेटा संग्रहीत करता है। Hadoop MapReduce, Hadoop में प्रोसेसिंग यूनिट है, जो डेटा को समानांतर में प्रोसेस करती है।
Hadoop YARN, Hadoop ढांचे में एक अन्य मुख्य घटक है, जो क्लस्टर में चल रहे अनुप्रयोगों के बीच संसाधनों के प्रबंधन और कार्य को शेड्यूल करने के लिए जिम्मेदार है।
Hadoop आंतरिक रूप से कैसे काम करता है, इसका अध्ययन करने से पहले, आइए पहले Hadoop के मुख्य घटकों और डेमॉन को देखें।
Hadoop के घटक और डेमॉन
Hadoop में तीन प्रमुख घटक होते हैं जो HDFS, MapReduce और YARN हैं।
<एच4>1. हडूप एचडीएफएसयह Hadoop के लिए स्टोरेज लेयर है। Hadoop डिस्ट्रिब्यूटेड फाइल सिस्टम क्लस्टर में विभिन्न नोड्स में डेटा स्टोर करता है। यह डेटा को ब्लॉक में विभाजित करता है और उन्हें विभिन्न नोड्स पर संग्रहीत करता है। ब्लॉक आकार डिफ़ॉल्ट रूप से 128 एमबी है . हम अपनी आवश्यकताओं के अनुसार ब्लॉक आकार को कॉन्फ़िगर कर सकते हैं।
<एच4>2. Hadoop MapReduceयह Hadoop में प्रोसेसिंग लेयर है। Hadoop MapReduce, Hadoop HDFS में संग्रहीत डेटा को क्लस्टर में विभिन्न नोड्स में समानांतर में संसाधित करता है। यह उपयोगकर्ता द्वारा सबमिट किए गए कार्य को स्वतंत्र कार्य में विभाजित करता है और उन्हें कमोडिटी हार्डवेयर में उप-कार्य के रूप में संसाधित करता है।
<एच4>3. हडूप यार्नयह Hadoop का संसाधन और प्रक्रिया प्रबंधन परत है। YARN क्लस्टर में चल रहे एप्लिकेशन के बीच संसाधनों को साझा करने और क्लस्टर में कार्य को शेड्यूल करने के लिए जिम्मेदार है।
Hadoop में ये तीन मुख्य घटक हैं।
Hadoop क्लस्टर में चल रहे डेमॉन
कुछ डेमॉन हैं जो हडूप क्लस्टर पर चलते हैं। डेमॉन एक हल्की-फुल्की प्रक्रिया है जो पृष्ठभूमि में चलती है।
कुछ डेमॉन मास्टर नोड पर और कुछ स्लेव नोड पर चलते हैं। आइए अब हम Hadoop डेमॉन का अध्ययन करें।
प्रमुख Hadoop डेमॉन हैं:
<एच4>1. मास्टर डेमन्स- नामनोड: यह Hadoop HDFS में मास्टर डेमॉन है। यह फाइलसिस्टम नेमस्पेस को बनाए रखता है। यह फाइलों के प्रत्येक ब्लॉक के बारे में मेटाडेटा संग्रहीत करता है।
- संसाधन प्रबंधक: यह YARN का मास्टर डेमॉन है। यह क्लस्टर में चल रहे सभी अनुप्रयोगों के बीच संसाधनों की मध्यस्थता करता है।
- डेटानोड: DataNode Hadoop HDFS का गुलाम डेमॉन है। यह स्लेव मशीनों पर चलता है। यह वास्तविक डेटा या ब्लॉक को स्टोर करता है।
- नोड प्रबंधक: यह YARN का गुलाम डेमन है। यह क्लस्टर में सभी व्यक्तिगत कंप्यूटिंग नोड्स का ख्याल रखता है।
Hadoop कैसे काम करता है?
Hadoop कमोडिटी हार्डवेयर के क्लस्टर में वितरित तरीके से डेटा को स्टोर और प्रोसेस करता है। किसी भी डेटा को स्टोर और प्रोसेस करने के लिए, क्लाइंट डेटा और प्रोग्राम को Hadoop क्लस्टर में सबमिट करता है।
Hadoop HDFS डेटा संग्रहीत करता है, MapReduce HDFS में संग्रहीत डेटा को संसाधित करता है, और YARN कार्यों को विभाजित करता है और संसाधन प्रदान करता है।
आइए अब इन घटकों को विस्तार से देखें।
<एच4>1. एचडीएफएस
Hadoop में डेटा Hadoop डिस्ट्रिब्यूटेड फाइल सिस्टम में स्टोर होता है। Hadoop HDFS में दो डेमॉन चल रहे हैं जो NameNode और DataNode हैं।
ए. NameNode
NameNode HDFS में मास्टर डेमॉन है। यह मास्टर नोड्स पर चलता है। यह फाइलसिस्टम नेमस्पेस को बनाए रखता है। NameNode वास्तविक डेटा को संग्रहीत नहीं करता है। यह मेटाडेटा को स्टोर करता है, जैसे फाइलों के ब्लॉक, फाइलों की अनुमति, ब्लॉक स्थानों आदि के बारे में जानकारी।
NameNode DataNode का प्रबंधन करता है और उन्हें निर्देश प्रदान करता है। NameNode हर 3 सेकंड में DataNodes से दिल की धड़कन प्राप्त करता है, जो निर्दिष्ट करता है कि DataNode जीवित है।
<एच5>बी. डेटानोडDataNode HDFS में दास डेमॉन है। DataNodes दास नोड हैं जो वास्तविक व्यावसायिक डेटा संग्रहीत करते हैं। वे NameNode के निर्देशों के आधार पर क्लाइंट के पढ़ने/लिखने के अनुरोधों को पूरा करने के लिए जिम्मेदार हैं। DataNodes यह सुनिश्चित करने के लिए NameNode को दिल की धड़कन वाले संदेश भेजते हैं कि वे जीवित हैं।
सी. द्वितीयक NameNode
यह Hadoop HDFS में एक और डेमॉन है। यह प्राथमिक NameNode के लिए सहायक नोड है। द्वितीयक NameNode प्राथमिक NameNode से संपादन लॉग और Fsimage फ़ाइल डाउनलोड करता है और समय-समय पर संपादन लॉग को Fsimage पर लागू करता है। ।
फिर यह अद्यतन की गई Fsimage फ़ाइल को NameNode पर वापस भेजता है। इसलिए, यदि प्राथमिक NameNode विफल हो जाता है, तो द्वितीयक NameNode पर अंतिम सहेजें Fsimage का उपयोग फ़ाइल सिस्टम मेटाडेटा को पुनर्प्राप्त करने के लिए किया जाता है।
जब भी क्लाइंट Hadoop HDFS को डेटा पढ़ना या लिखना चाहता है, तो वह पहले NameNode के साथ इंटरैक्ट करता है। NameNode पहले क्लाइंट विशेषाधिकारों की जाँच करता है, और यदि क्लाइंट के पास पर्याप्त विशेषाधिकार हैं, तो NameNode DataNodes का पता प्रदान करता है जहाँ से क्लाइंट डेटा पढ़ या लिख सकता है।
एचडीएफएस में क्लाइंट की फाइल को ब्लॉक में बांटा गया है। डिफ़ॉल्ट रूप से ब्लॉक का आकार 128 एमबी है। DataNode फ़ाइलों के ब्लॉक को संग्रहीत करता है। दोष-सहनशीलता प्रदान करने के लिए, HDFS प्रतिकृति कारक के आधार पर ब्लॉकों की प्रतिकृतियां बनाता है।
डिफ़ॉल्ट रूप से प्रतिकृति कारक 3 है, जिसका अर्थ है कि एक ब्लॉक की 3 प्रतियां एचडीएफएस में संग्रहीत की जाती हैं। HDFS, रैक अवेयरनेस एल्गोरिथम का पालन करके विभिन्न डेटा नोड्स पर ब्लॉक की प्रतिकृतियां संग्रहीत करता है।
फ़ाइल पढ़ने के दौरान, यदि कोई DataNode नीचे चला जाता है, तो NameNode दूसरे DataNode का पता प्रदान करता है जिसमें ब्लॉक की प्रतिकृति होती है जहाँ से क्लाइंट बिना किसी डाउनटाइम के अपने डेटा को पढ़ सकता है।
<एच4>2. MapReduce
MapReduce Hadoop में प्रोसेसिंग लेयर है। यह क्लस्टर में कई मशीनों के समानांतर डेटा को प्रोसेस करता है। यह कार्य को स्वतंत्र उप-कार्यों में विभाजित करके काम करता है और उन्हें विभिन्न डेटा नोड्स में समानांतर में निष्पादित करता है।
MapReduce डेटा को दो चरणों में संसाधित करता है, अर्थात मानचित्र चरण और चरण कम करें . दोनों चरणों के इनपुट और आउटपुट कुंजी, मूल्य जोड़े हैं। प्रोग्रामर द्वारा InputFormat वर्ग . के माध्यम से कुंजी का प्रकार, मान जोड़े निर्दिष्ट किए जाते हैं . डिफ़ॉल्ट रूप से, टेक्स्ट इनपुट प्रारूप का उपयोग किया जाता है।
प्रोग्रामर दो कार्यों को निर्दिष्ट करता है, अर्थात मानचित्र फ़ंक्शन और फ़ंक्शन कम करें . मैप फ़ंक्शन में, प्रोग्रामर डेटा को संसाधित करने के लिए व्यावसायिक तर्क लिखता है।
रिड्यूस फंक्शन में, प्रोग्रामर मैप फंक्शन के इंटरमीडिएट आउटपुट को सारांशित करने और एग्रीगेट करने के लिए लॉजिक लिखता है और आउटपुट जेनरेट करता है।
Hadoop MapReduce की कार्यप्रणाली
जब भी क्लाइंट Hadoop क्लस्टर में अपने डेटा पर कोई प्रोसेसिंग करना चाहता है, तो वह पहले Hadoop HDFS में डेटा स्टोर करता है और फिर डेटा को प्रोसेस करने के लिए MapReduce प्रोग्राम लिखता है। Hadoop MapReduce इस प्रकार काम करता है:
1. Hadoop कार्य को दो प्रकार के कार्यों में विभाजित करता है, अर्थात कार्यों को मैप करना और कार्यों को कम करना। YARN ने इन कार्यों को निर्धारित किया (जिसे हम इस लेख में बाद में देखेंगे)। ये कार्य अलग-अलग DataNodes पर चलते हैं।
2. MapReduce जॉब के इनपुट को निश्चित आकार के टुकड़ों में विभाजित किया जाता है जिसे इनपुट स्प्लिट्स कहा जाता है।
3. एक मैप टास्क जो इनपुट स्प्लिट में प्रत्येक रिकॉर्ड के लिए यूजर-डिफ़ाइंड मैप फंक्शन चलाता है, प्रत्येक इनपुट स्प्लिट के लिए बनाया जाता है। ये मानचित्र कार्य DataNodes पर चलते हैं जहां इनपुट डेटा रहता है।
4. मैप टास्क का आउटपुट इंटरमीडिएट आउटपुट है और इसे स्थानीय डिस्क पर लिखा जाता है।
5. मानचित्र कार्यों के मध्यवर्ती आउटपुट को फेरबदल और क्रमबद्ध किया जाता है और फिर रेड्यूसर को पास कर दिया जाता है।
6. सिंगल रिड्यूस टास्क के लिए, मैपर के सॉर्ट किए गए इंटरमीडिएट आउटपुट को उस नोड को पास किया जाता है जहां रिड्यूसर टास्क चल रहा होता है। इन आउटपुट को फिर मर्ज कर दिया जाता है और फिर उपयोगकर्ता द्वारा परिभाषित कम करने वाले फ़ंक्शन को पास कर दिया जाता है।
7. कम करें फ़ंक्शन मैपर के आउटपुट को सारांशित करता है और आउटपुट उत्पन्न करता है। रिड्यूसर का आउटपुट एचडीएफएस पर स्टोर होता है।
8. कई कम कार्यों के लिए, उपयोगकर्ता रेड्यूसर की संख्या निर्दिष्ट करता है। जब कई कम कार्य होते हैं, तो मानचित्र कार्य उनके आउटपुट को विभाजित करते हैं, प्रत्येक कम कार्य के लिए एक विभाजन बनाते हैं।
यार्न
YARN Hadoop में संसाधन प्रबंधन परत है। यह Hadoop क्लस्टर में कार्य को शेड्यूल करता है और क्लस्टर में चल रहे एप्लिकेशन को संसाधन प्रदान करता है। यह अनुप्रयोगों को क्रियान्वित करने के लिए आवश्यक कम्प्यूटेशनल संसाधन प्रदान करने के लिए जिम्मेदार है।
YARN कोर सेवाओं की सेवा के लिए Hadoop क्लस्टर में दो YARN डेमॉन चल रहे हैं। वे हैं:
ए. संसाधन प्रबंधक
यह YARN का मास्टर डेमॉन है। यह क्लस्टर में संसाधनों का प्रबंधन करने के लिए प्रति क्लस्टर मास्टर नोड पर चलता है। संसाधन प्रबंधक के दो प्रमुख घटक हैं जो अनुसूचक . हैं और अनुप्रयोग प्रबंधक।
शेड्यूलर क्लस्टर में चल रहे विभिन्न अनुप्रयोगों के लिए संसाधन आवंटित करता है।
एप्लिकेशन मैनेजर क्लाइंट द्वारा सबमिट किए गए कार्य को लेता है, और एप्लिकेशन-विशिष्ट एप्लिकेशनमास्टर को निष्पादित करने के लिए कंटेनर से बातचीत करता है, और विफलता पर एप्लिकेशनमास्टर कंटेनर को पुनरारंभ करता है।
<एच5>बी. नोड प्रबंधकNodeManager YARN का दास डेमॉन है। यह क्लस्टर के सभी स्लेव नोड्स पर चलता है। यह नोड्स पर कंटेनरों को लॉन्च करने और प्रबंधित करने के लिए जिम्मेदार है। कंटेनर एप्लिकेशन-विशिष्ट प्रक्रियाओं को संसाधनों के सीमित सेट जैसे मेमोरी, सीपीयू, आदि के साथ निष्पादित करते हैं।
जब NodeManager प्रारंभ होता है, तो वह स्वयं को ResourceManager को घोषित करता है। यह समय-समय पर संसाधन प्रबंधक को दिल की धड़कन भेजता है। यह क्लस्टर को संसाधन प्रदान करता है।
सी. एप्लिकेशनमास्टर
प्रति-एप्लिकेशन ApplicationMaster कंटेनरों से शेड्यूलर बनाता है और कंटेनर की स्थिति को ट्रैक करता है और कंटेनर की प्रगति की निगरानी करता है।
क्लाइंट रिसोर्समैनेजर को एक आवेदन सबमिट करता है। रिसोर्समैनेजर NodeManager से संपर्क करता है जो क्लस्टर में नोड्स पर कंप्यूट कंटेनरों को लॉन्च और मॉनिटर करता है। कंटेनर एप्लिकेशनमास्टर को निष्पादित करता है।
MapReduce कार्य और ApplicationMaster कंटेनरों में चलते हैं जो संसाधन प्रबंधक द्वारा शेड्यूल किए जाते हैं और NodeManagers द्वारा प्रबंधित किए जाते हैं।
आइए अब संक्षेप में बताते हैं कि Hadoop आंतरिक रूप से कैसे काम करता है:
1. एचडीएफएस क्लाइंट इनपुट डेटा को 128 एमबी आकार के ब्लॉक में विभाजित करता है। प्रतिकृति कारक के आधार पर, ब्लॉकों की प्रतिकृतियां बनाई जाती हैं। ब्लॉक और उनकी प्रतिकृतियां अलग-अलग डेटा नोड्स पर संग्रहीत की जाती हैं।
2. एक बार जब सभी ब्लॉक एचडीएफएस डेटानोड्स पर संग्रहीत हो जाते हैं, तो उपयोगकर्ता डेटा को संसाधित कर सकता है।
3. डेटा को प्रोसेस करने के लिए, क्लाइंट MapReduce प्रोग्राम को Hadoop को सबमिट करता है।
4. इसके बाद रिसोर्स मैनेजर ने क्लस्टर में अलग-अलग नोड्स पर उपयोगकर्ता द्वारा सबमिट किए गए प्रोग्राम को शेड्यूल किया।
5. एक बार जब सभी नोड्स प्रोसेसिंग पूरी कर लेते हैं, तो आउटपुट एचडीएफएस को वापस लिखा जाता है।
सारांश
इस लेख में, हमने Hadoop की संपूर्ण कार्यप्रणाली का अध्ययन किया है। मुझे उम्मीद है कि इस लेख को पढ़ने के बाद, आप समझ गए होंगे कि कैसे Hadoop भारी मात्रा में डेटा को संग्रहीत और संसाधित करता है।
लेख यह भी बताता है कि संसाधनों में अनुप्रयोगों के बीच संसाधनों को कैसे शेड्यूल किया जाता है। लेख में Hadoop क्लस्टर में चल रहे प्रमुख डेमॉन और Hadoop के मुख्य घटकों का वर्णन किया गया है।
मुझे उम्मीद है कि आप समझ गए होंगे कि Hadoop आंतरिक रूप से कैसे काम करता है।
सीखते रहें !!