hadoop hdfs hadoop distributed file system
यह ट्यूटोरियल Hadoop HDFS - Hadoop डिस्ट्रिब्यूटेड फाइल सिस्टम, कंपोनेंट्स और क्लस्टर आर्किटेक्चर को स्पष्ट करता है। आप रैक जागरूकता एल्गोरिथ्म के बारे में भी जानेंगे:
जैसा कि हमने पिछले ट्यूटोरियल में सीखा था, बिग डेटा के साथ सबसे बड़ा मुद्दा इसे मौजूदा सिस्टम में स्टोर करना है। और यहां तक कि अगर हम किसी भी तरह मौजूदा सिस्टम में इसका हिस्सा संग्रहीत करते हैं, तो बिगडाटा को प्रसंस्करण में सालों लग गए।
जो परिणाम आप मिनटों में चाहते थे उन्हें हफ्तों या शायद महीनों में लगता था और उसके कारण, उस परिणाम का मूल्य खो गया था।
=> सरल बिगडाटा प्रशिक्षण श्रृंखला यहां देखें।
आप क्या सीखेंगे:
Hadoop वितरित फ़ाइल सिस्टम
इस समस्या को हल करने या इस समस्या से निपटने के लिए अब हमारे पास HADOOP है। Hadoop ने इस बड़ी डेटा समस्या का उपयोग करके हल किया Hadoop HDFS।
Hadoop HDFS बिग डेटा और के भंडारण की समस्या को हल किया Hadoop मानचित्र कम करें बिग डेटा के प्रसंस्करण भाग से संबंधित मुद्दों को हल किया।
अब, हम जानते हैं कि Hadoop में अनिवार्य रूप से एक डिस्ट्रीब्यूटेड फाइल सिस्टम है ... लेकिन क्यों?
सॉफ्टवेयर किसी भी वेबसाइट से वीडियो डाउनलोड करने के लिए
Hadoop एक वितरित फ़ाइल सिस्टम क्यों है?
डिस्ट्रीब्यूटेड फाइल सिस्टम क्या है इसे समझने की कोशिश करें और डिस्ट्रीब्यूटेड फाइल सिस्टम के फायदों को समझें।
वितरित फ़ाइल सिस्टम
आइए 1TB डेटा पढ़ने का एक उदाहरण लें। हमारे पास एक सर्वर है जो एक अच्छा हाई-एंड सर्वर है जिसे 4 I / O (इनपुट आउटपुट) चैनल मिले हैं और प्रत्येक चैनल में 100MB / s की बैंडविड्थ है, इस मशीन का उपयोग करके, आप इस 1TB डेटा को 43 में पढ़ पाएंगे मिनट।
अब अगर हम 10 Nos। मशीनों को इस तरह से लाते हैं तो क्या होगा?
समय घटकर ठीक 4.3 मिनट हो गया। ऐसा इसलिए है क्योंकि पूरा प्रयास 10 मशीनों में विभाजित हो गया और इसीलिए 1TB डेटा को संसाधित करने में लगने वाला समय घटकर 1/10 रह गया हैवेंयानी 4.3 मिनट।
इसी तरह, जब हम BigData पर विचार करते हैं, तो वह डेटा डेटा के कई भाग में विभाजित हो जाता है और हम वास्तव में उस डेटा को अलग से प्रोसेस करते हैं और यही कारण है कि Hadoop ने सेंट्रलाइज्ड फाइल सिस्टम पर डिस्ट्रीब्यूटेड फाइल सिस्टम को चुना है।
Hadoop के घटक
Hadoop HDFS में BigData के साथ मुद्दों को हल करने के लिए 2 मुख्य घटक हैं।
- पहला घटक बिग डेटा स्टोर करने के लिए Hadoop HDFS है।
- दूसरा घटक बिग डेटा प्रोसेस करने के लिए Hadoop मैप रिड्यूस है।
अब जब हम Hadoop (नीचे दी गई छवि) की वास्तुकला को देखते हैं, तो इसके दो पंख हैं जहां वामपंथी है 'संग्रहण' और दक्षिणपंथी है 'प्रसंस्करण' । इसका मतलब है कि लेफ्ट-विंग HDFS यानी हडोप डिस्ट्रीब्यूशन फाइल सिस्टम है और राइट-विंग YARN है और मैप रिड्यूस यानी प्रोसेसिंग पार्ट है।
HDFS का उपयोग करते हुए, Hadoop हमें बिग डेटा स्टोर करने में सक्षम बनाता है और YARN और मैप रिड्यूस का उपयोग करते हुए, Hadoop हमें उसी बिग डेटा को प्रोसेस करने में सक्षम करता है, जिसे हम HDFS में स्टोर कर रहे हैं।
जैसा कि आप ऊपर की छवि में देख सकते हैं, एचडीएफएस में दो प्रमुख डेमॉन हैं या आप उन्हें प्रक्रियाओं या थ्रेड्स के रूप में कॉल कर सकते हैं जो जेएवीए प्रक्रियाओं के अलावा कुछ भी नहीं हैं यानी जेवीएम - नेमनेट और डेटानॉड के भीतर चल रहे हैं।
NameNode एक मास्टर डेमॉन है जो मास्टर मशीन पर चलता है यानी अनिवार्य रूप से एक हाई-एंड मशीन और DataNode एक स्लेव मशीन है जो कमोडिटी हार्डवेयर पर चलती है। अधिक डाटाएनोड हो सकते हैं क्योंकि स्लेव मशीन एक मास्टर मशीन से अधिक हैं।
इसलिए हमारे पास हमेशा एक NameNode और कई DataNode स्लेव मशीनों पर चल रहा है।
इसी तरह, हमारे पास दूसरी तरफ YARN है जिसमें फिर से दो डेमॉन हैं, एक संसाधन प्रबंधक है जो मास्टर मशीन और नोड प्रबंधक पर चलता है जो डेटानॉड की तरह स्लेव मशीन पर चलता है। इसलिए हर स्लेव मशीन को दो डेमोंस मिले हैं - एक डेटानेट है और दूसरा नोड मैनेजर है।
मास्टर मशीन में NameNode चल रहा है और संसाधन प्रबंधक चल रहा है। NameNode Hadoop डिस्ट्रिब्यूटेड फ़ाइल सिस्टम पर डेटा के प्रबंधन के लिए जिम्मेदार है और संसाधन प्रबंधक इस संग्रहीत डेटा पर प्रसंस्करण कार्यों को निष्पादित करने के लिए जिम्मेदार है।
NameNode और DataNode
हम HDFS आर्किटेक्चर में गहराई से जाएंगे और इसलिए यह समझना महत्वपूर्ण है कि NameNode और DataNode क्या है क्योंकि ये दो मुख्य डेमॉन हैं जो वास्तव में HDFS को पूरी तरह से चलाते हैं।
NameNode
- यह एक मास्टर डेमॉन है।
- DataNodes का प्रबंधन और रखरखाव।
- रिकॉर्ड मेटाडेटा।
- सभी DataNodes से दिल की धड़कन और ब्लॉक रिपोर्ट प्राप्त करता है।
DataNode
- यह एक दास दाता है।
- वास्तविक डेटा यहां संग्रहीत है।
- ग्राहकों से अनुरोध पढ़ने और लिखने का काम करता है।
बस आरेख पर ध्यान केंद्रित करें, जैसा कि आप देख सकते हैं कि एक सेंट्रलाइज्ड मशीन नेमोड है जो विभिन्न डेटानेट को नियंत्रित कर रहा है जो कि यानि कमोडिटी हार्डवेयर हैं। तो नाम नोड कुछ भी नहीं है लेकिन मास्टर डेमॉन है जो सभी DataNode को बनाए रखता है।
इन NameNode में DataNode में संग्रहीत डेटा के बारे में सभी जानकारी होती है। DataNode जैसा कि नाम से ही पता चलता है कि Hadoop Cluster में मौजूद डेटा को स्टोर करता है।
NameNode में केवल यह जानकारी होती है कि DataNode किस डेटा पर संग्रहीत है। तो, हम क्या कह सकते हैं NameNode DataNodes पर संग्रहीत डेटा के मेटाडेटा को संग्रहीत करता है।
DataNode एक और कार्य भी करता है यानी यह नियमित रूप से दिल की धड़कन NameNode को भेजता है। दिल की धड़कन वास्तव में NameNode को बताती है कि यह DataNode अभी भी जीवित है।
उदाहरण के लिए, DataNodes NameNode पर वापस दिल की धड़कन भेजता है और इस तरह NameNode में यह चित्र होता है कि ये DataNodes जीवित हैं, इसलिए NameNode अधिक डेटा संग्रहीत करने या इन DataNodes से डेटा पढ़ने के लिए इन DataNode का उपयोग कर सकता है।
अब हम DataNode पर आते हैं, DataNode कुछ और नहीं बल्कि स्लेव डैमन्स है जो वास्तव में उस डेटा को स्टोर कर रहा है जिसे Hadoop क्लस्टर में भेजा जाता है। ये DataNodes ऐसे हैं जो वास्तव में ग्राहकों द्वारा किए गए अनुरोध को पढ़ने और लिखने का काम करते हैं।
यदि कोई व्यक्ति Hadoop क्लस्टर से डेटा पढ़ना चाहता है, तो ये अनुरोध वास्तव में DataNodes द्वारा संसाधित किए जाते हैं जहाँ डेटा निवास कर रहा है।
Hadoop क्लस्टर आर्किटेक्चर
NameNode और DataNode से संबंधित पिछले विषय में, हमने इस शब्द का उपयोग किया है 'Hadoop क्लस्टर'। आइए एक त्वरित नज़र डालें कि यह वास्तव में क्या है?
उपरोक्त छवि एक Hadoop क्लस्टर आर्किटेक्चर का अवलोकन दर्शाती है। Hadoop Cluster एक मास्टर-स्लेव टोपोलॉजी के अलावा और कुछ नहीं है, जिसमें एक मास्टर मशीन है जैसा कि आप शीर्ष पर देख सकते हैं यानी Hadoop Cluster। इस मास्टर मशीन में, एक NameNode और संसाधन प्रबंधक चल रहा है यानी मास्टर डेमॉन।
मास्टर मशीन कोर स्विच का उपयोग करके सभी स्लेव मशीन से जुड़ा हुआ है, ऐसा इसलिए है क्योंकि ये DataNodes वास्तव में विभिन्न रैक में संग्रहीत हैं, इसलिए जैसा कि आप Computer N, Computer 2, Computer 3 को Computer N तक देख सकते हैं। यह कुछ और नहीं है, बल्कि Slave मशीनें या DataNodes और वे सभी एक रैक में मौजूद हैं।
'रैक वास्तव में मशीनों का एक समूह है जो एक विशेष स्थान पर शारीरिक रूप से मौजूद हैं और एक दूसरे से जुड़े हुए हैं।'
इस प्रकार प्रत्येक मशीन के बीच नेटवर्क बैंडविड्थ यथासंभव न्यूनतम है। इसी तरह, अधिक रैक हैं, हालांकि, वे एक ही स्थान पर मौजूद नहीं हैं, इसलिए, हमारे पास रैक की एक 'एन' संख्या हो सकती है और हमारे पास इन रैक के भीतर डेटा नोड्स या कंप्यूटर या स्लेव मशीनों की संख्या भी हो सकती है।
यह कैसे दास मशीनें वास्तव में क्लस्टर पर वितरित की जाती हैं, हालांकि, एक ही समय में वे एक-दूसरे से जुड़े होते हैं।
HDFS में डाटा कैसे स्टोर किया जाता है?
अब हम धीरे-धीरे विवरण में आगे बढ़ रहे हैं कि एचडीएफएस पूरी तरह से कैसे काम करता है। यहां हम एचडीएफएस की वास्तुकला का पता लगाएंगे।
जब हम कहते हैं, एचडीएफएस में एक फाइल को स्टोर करते हैं, तो डेटा एचडीएफ में ब्लॉक के रूप में संग्रहीत हो जाता है। पूरी फाइल एचडीएफएस में संग्रहीत नहीं है, ऐसा इसलिए है क्योंकि जैसा कि आप जानते हैं कि Hadoop एक वितरित फ़ाइल सिस्टम है।
इसलिए यदि आपके पास शायद 1 पीबी (पेटा बाइट) का फ़ाइल आकार है, तो इस तरह का भंडारण एक मशीन में मौजूद नहीं है क्योंकि कमोड हार्डवेयर का उपयोग करके हडोप क्लस्टर बनाया जाता है। एक एकल मशीन में हार्डवेयर 1 टीबी या 2 टीबी के आसपास होगा।
इस प्रकार संपूर्ण फ़ाइल को डेटा के उन हिस्सों में तोड़ना पड़ता है जिन्हें एचडीएफएस ब्लॉक कहा जाता है।
- प्रत्येक फ़ाइल को ब्लॉक के रूप में HDFS पर संग्रहीत किया जाता है।
- प्रत्येक ब्लॉक का डिफ़ॉल्ट आकार Apache Hadoop 2.x (और पिछले संस्करण में 64mb यानी Apache Hadoop 1.x) में लगभग 128 MB है।
- कॉन्फ़िगरेशन फ़ाइल यानी HDfssite.xml का उपयोग करके ब्लॉक के फ़ाइल आकार को बढ़ाने या घटाने की सुविधा है जो Hadoop पैकेज के साथ आती है।
आइए इस तंत्र को समझने के लिए एक उदाहरण लें और देखें कि ये ब्लॉक कैसे बनाए गए हैं।
यहाँ 248 एमबी की एक फाइल पर विचार करें, अब अगर हम इस फाइल को तोड़ते हैं या यदि हम इस फाइल को Hadoop Cluster यानी 2.x में स्थानांतरित करते हैं, तो यह फाइल एक ब्लॉक में टूट जाएगी अर्थात 128 MB का ब्लॉक A और दूसरा ब्लॉक B की 120 एमबी।
जैसा कि आप देख सकते हैं कि पहला ब्लॉक 128 एमबी का है यानी बहुत पहला स्लैब वहां से कट जाता है और इसीलिए दूसरा ब्लॉक 120 एमबी का है और 128 एमबी का नहीं है। यदि शेष फ़ाइल का आकार छोटा है तो यह किसी भी स्थान को बर्बाद नहीं करेगा। डिफ़ॉल्ट ब्लॉक आकार की तुलना में।
अब हमारे सामने एक और मुद्दा है यानी क्या प्रत्येक ब्लॉक की एक ही प्रति रखना सुरक्षित है?
कैसे .bin फ़ाइलें खोलें
इसका जवाब नहीं है क्योंकि ऐसा मौका है कि सिस्टम विफल हो सकता है और यह कमोडिटी हार्डवेयर के अलावा और कुछ नहीं है जिसकी वजह से हम बड़ी परेशानी में पड़ सकते हैं। इस समस्या को दूर करने के लिए, Hadoop HDFS का एक अच्छा समाधान है अर्थात्। 'ब्लॉक की प्रतिकृति'।
Hadoop आर्किटेक्चर ब्लॉक प्रतिकृति
Hadoop हर ब्लॉक की प्रतिकृति बनाता है जो Hadoop डिस्ट्रिब्यूटेड फाइल सिस्टम में स्टोर हो जाता है और इस तरह से Hadoop एक Fault-Tolerant System है, जबकि आपका सिस्टम फेल हो जाता है या आपका DataNode विफल हो जाता है या कॉपी गुम हो जाती है, आपके पास कई अन्य प्रतियां होंगी अन्य DataNodes या अन्य सर्वर में मौजूद है ताकि आप हमेशा उन प्रतियों को वहां से ले सकें।
जैसा कि उपरोक्त आरेख में देखा गया है कि ब्लॉक प्रतिकृति का प्रतिनिधित्व करता है, एक फ़ाइल के पांच अलग-अलग ब्लॉक होते हैं यानी ब्लॉक 1, 2,3,4,5। पहले ब्लॉक 1 के साथ जांच करते हैं, और आपको नोड 1, नोड 2 और नोड 4 में ब्लॉक 1 की प्रतियां मिलेंगी।
इसी प्रकार, ब्लॉक 2 को भी तीन प्रतियां अर्थात् नोड 2, नोड 3 और नोड 4 मिली हैं और इसी तरह संबंधित नोड्स में ब्लॉक 3, 4 और 5 के लिए भी।
इसलिए बनाई जा रही प्रतिकृतियों के अलावा, हर ब्लॉक को तीन बार दोहराया गया है यानी Hadoop तीन के डिफ़ॉल्ट प्रतिकृति कारक का अनुसरण करता है, जिसका अर्थ है कि आप जिस भी फ़ाइल को Hadoop वितरण फ़ाइल सिस्टम में कॉपी करते हैं, उसे तीन बार दोहराया जाता है।
दूसरे शब्दों में, यदि आप किसी फ़ाइल के 1 GB को Hadoop वितरण फ़ाइल सिस्टम में कॉपी करते हैं, तो यह वास्तव में HDFS में फ़ाइल के 3 GB को संग्रहीत करता है। अच्छा हिस्सा यह है कि डिफ़ॉल्ट प्रतिकृति कारक Hadoop की कॉन्फ़िगरेशन फ़ाइलों में परिवर्तन करके परिवर्तनशील है।
Hadoop कैसे तय करता है कि प्रतिकृतियां कहाँ संग्रहीत करें?
Hadoop वास्तव में रैक अवेयरनेस की अवधारणा का अनुसरण करता है ताकि यह तय किया जा सके कि किसी ब्लॉक की प्रतिकृति को कहाँ संग्रहीत किया जाए।
नीचे दिए गए आरेख रैक जागरूकता एल्गोरिदम का चित्रण है।
तीन अलग-अलग रैक हैं यानी रैक -1, रैक -2 और रैक -3।
Rack-1 में चार DataNodes होते हैं और इसलिए Rack-2 & Rack-3 करते हैं, इस प्रकार कुल मिलाकर Hadoop क्लस्टर में तीनों रैक शामिल होंगे और 12 DataNodes होंगे।
मान लीजिए कि ब्लॉक A को रैक -1 में DataNode 1 पर कॉपी किया गया है, रैक जागरूकता की अवधारणा के अनुसार ब्लॉक A की प्रतिकृति को एक ही रैक में नहीं बनाया जा सकता है, और इसे रैक -1 के अलावा किसी अन्य रैक में बनाने की आवश्यकता है रैक -1 में मुख्य फाइल पहले से मौजूद है।
यदि हम एक ही रैक -1 में ब्लॉक ए की प्रतिकृतियां बनाते हैं और मामले में पूरी रैक -1 विफल हो जाती है, तो हम डेटा को निश्चित रूप से खो देंगे, इस प्रकार प्रतिकृति को किसी अन्य रैक में संग्रहीत किया जाना चाहिए, लेकिन रैक -1 में नहीं।
तो रैक -2 के डेटनोड 6 और 8 में प्रतिकृति बनने जा रही है। इसी तरह, ब्लॉक बी और ब्लॉक सी के लिए, प्रतिकृतियां अलग-अलग रैक में बनाई जाने वाली हैं, जैसा कि ऊपर चित्र में दिखाया गया है।
निष्कर्ष
हमने इस ट्यूटोरियल से निम्नलिखित बिंदुओं के साथ सीखा-
- Hadoop HDFS BigData की स्टोरेज समस्या का समाधान करता है।
- Hadoop Map Reduce BigData के प्रसंस्करण से संबंधित मुद्दों को हल करता है।
- NameNode एक मास्टर डेमॉन है और इसका उपयोग DataNodes को प्रबंधित करने और बनाए रखने के लिए किया जाता है।
- DataNode एक Slave Daemon है और वास्तविक डेटा यहाँ संग्रहीत है। यह ग्राहकों से अनुरोधों को पढ़ने और लिखने का कार्य करता है।
- Hadoop Cluster में, एक रैक वास्तव में मशीनों का एक समूह होता है जो एक विशेष स्थान पर भौतिक रूप से मौजूद होते हैं और एक दूसरे से जुड़े होते हैं।
- प्रत्येक फ़ाइल को ब्लॉक के रूप में HDFS पर संग्रहीत किया जाता है।
- प्रत्येक ब्लॉक का डिफ़ॉल्ट आकार Apache Hadoop 2.x में लगभग 128 MB है (पिछले संस्करण में 64 MB यानी Apache Hadoop 1.x)
- कॉन्फ़िगरेशन फ़ाइल यानी HDfssite.xml का उपयोग करके ब्लॉक के फ़ाइल आकार को बढ़ाने या घटाने की सुविधा है जो Hadoop पैकेज के साथ आती है।
एचडीएफएस पर अगले ट्यूटोरियल में, हम एचडीएफएस आर्किटेक्चर और रीड एंड राइट मैकेनिज्म के बारे में जानेंगे।
=> सभी के लिए बिगडेटा प्रशिक्षण श्रृंखला देखने के लिए यहां जाएं।
अनुशंसित पाठ
- Hadoop क्या है? शुरुआती के लिए Apache Hadoop ट्यूटोरियल
- यूनिक्स में फाइल मैनिपुलेशन: यूनिक्स फाइल सिस्टम का अवलोकन
- फाइल मैनिपुलेशन के लिए यूनिक्स स्पेशल कैरेक्टर या मेटाचैकर्स
- यूनिक्स फ़ाइल एक्सेस अनुमतियाँ: यूनिक्स चामोड, चाउन और चेंग
- रानोरेक्स टेस्ट सूट, टेस्ट मॉड्यूल क्रिएशन, यूजरकोड फ़ाइल, एक्सपैथ और डेटा बाइंडिंग
- VBScript फ़ाइल ऑब्जेक्ट्स: CopyFile, DeleteFile, OpenTextFile, पाठ फ़ाइल पढ़ें और लिखें
- फ़ाइल इनपुट आउटपुट ऑपरेशन C ++ में
- जावा परिनियोजन: जावा जार फ़ाइल का निर्माण और निष्पादन