इस ट्यूटोरियल में हम आपको Hadoop में एक डिस्ट्रिब्यूटेड कैशे का विस्तृत विवरण प्रदान करेंगे। . सबसे पहले हम संक्षेप में समझेंगे कि Hadoop क्या है, फिर हम देखेंगे कि Hadoop में Distributed Cache क्या है।
हम Hadoop डिस्ट्रिब्यूटेड कैश के कामकाज और कार्यान्वयन को भी कवर करेंगे। अंत में इस ब्लॉग में हम Hadoop में वितरित कैशिंग के फायदे और नुकसान भी देखेंगे।
Hadoop का परिचय
यह एक ऐसा तंत्र है जो MapReduce ढांचा अनुप्रयोगों के लिए आवश्यक फाइलों को कैश करने के लिए प्रदान करता है। यह केवल-पढ़ने के लिए पाठ/डेटा फ़ाइलों जैसी फ़ाइलों को कैश कर सकता है, और अधिक जटिल प्रकार जैसे संग्रह, जार फ़ाइलें आदि।
डिस्ट्रिब्यूटेड कैशे के साथ शुरू करने से पहले, आइए पहले चर्चा करें कि Hadoop क्या है?
हडूप ओपन-सोर्स, जावा-आधारित प्रोग्रामिंग फ्रेमवर्क है। यह वितरित वातावरण में अत्यंत बड़े डेटासेट के प्रसंस्करण और भंडारण का समर्थन करता है। Hadoop मास्टर-स्लेव टोपोलॉजी का अनुसरण करता है।
मास्टर NameNode है और स्लेव DataNode है। डेटानोड वास्तविक डेटा को HDFS . में संग्रहीत करता है . और यह क्लाइंट के अनुरोध के अनुसार रीड एंड राइट ऑपरेशन करता है। नामेनोड मेटा-डेटा संग्रहीत करता है।
Apache Hadoop में, डेटा खंड, डेटानोड्स के बीच समानांतर में प्रक्रिया करते हैं, उपयोगकर्ता द्वारा लिखे गए प्रोग्राम का उपयोग करते हैं। अगर हम सभी डेटानोड्स से कुछ फाइलों को एक्सेस करना चाहते हैं, तो हम उस फाइल को डिस्ट्रिब्यूटेड कैशे में डाल देंगे।
Hadoop में वितरित कैश क्या है?
वितरित कैश Hadoop में MapReduce फ्रेमवर्क द्वारा प्रदान की जाने वाली एक सुविधा है। डिस्ट्रिब्यूटेड कैशे एप्लिकेशन द्वारा जरूरत पड़ने पर फाइलों को कैश कर सकता है। यह रीड ओनली टेक्स्ट फाइल्स, आर्काइव्स, जार फाइल्स आदि को कैश कर सकता है।
एक बार जब हम अपने काम के लिए एक फाइल को कैश कर लेते हैं, तो Apache Hadoop इसे प्रत्येक डेटानोड पर उपलब्ध कराएगा, जहां मैप/रिड्यूस टास्क चल रहे हैं। इस प्रकार, हम अपने MapReduce जॉब में सभी डेटानोड्स से फ़ाइलों तक पहुँच सकते हैं।
वितरित कैश का आकार
डिफ़ॉल्ट रूप से, वितरित कैश आकार 10 जीबी है। यदि हम वितरित कैश के आकार को समायोजित करना चाहते हैं तो हम स्थानीय . का उपयोग करके समायोजित कर सकते हैं .कैश .आकार.
कार्यान्वयन
एक एप्लिकेशन जो फ़ाइल वितरित करने के लिए वितरित कैश का उपयोग करने जा रहा है:
- पहले यह सुनिश्चित करना चाहिए कि फ़ाइल उपलब्ध है।
- उसके बाद, यह भी सुनिश्चित करें कि फ़ाइल को URL के माध्यम से एक्सेस किया जा सकता है। URL या तो hdfs:// या https:// हो सकते हैं।
उपरोक्त सत्यापन के बाद, यदि फ़ाइल उल्लिखित यूआरएल पर मौजूद है। Hadoop उपयोगकर्ता इसे वितरित कैश में कैश फ़ाइल होने का उल्लेख करता है। Hadoop MapReduce जॉब उन नोड्स पर कार्य शुरू करने से पहले सभी नोड्स पर कैशे फ़ाइल की प्रतिलिपि बनाएगा।
नीचे दी गई प्रक्रिया का पालन करें:
a) अपेक्षित फ़ाइल को HDFS में कॉपी करें:
$ hdfs dfs-put/user/dataflair/lib/jar_file.jar
b) एप्लिकेशन का JobConf सेटअप करें:
DistributedCache.addFileToClasspath(नया पथ ("/user/dataflair/lib/jar-file.jar"), conf)।
c) इसे ड्राइवर क्लास में जोड़ें।
वितरित कैश के लाभ
- विफलता का एकल बिंदु- चूंकि वितरित कैश कई नोड्स में चलता है। इसलिए, एकल नोड की विफलता के परिणामस्वरूप कैश की पूर्ण विफलता नहीं होती है।
- डेटा संगतता- यह कैश फ़ाइलों के संशोधन टाइमस्टैम्प को ट्रैक करता है। इसके बाद, यह सूचित करता है कि जब तक कोई कार्य निष्पादित नहीं हो जाता तब तक फ़ाइलों को नहीं बदलना चाहिए। हैशिंग एल्गोरिथम का उपयोग करते हुए, कैश इंजन हमेशा यह निर्धारित कर सकता है कि कोई विशेष कुंजी-मान किस नोड पर रहता है। जैसा कि हम जानते हैं कि कैश क्लस्टर की हमेशा एक ही स्थिति होती है, इसलिए, यह कभी भी असंगत नहीं होता है।
- जटिल डेटा स्टोर करें – यह सरल, केवल-पढ़ने के लिए पाठ फ़ाइल वितरित करता है। यह जार, अभिलेखागार जैसे जटिल प्रकारों को भी संग्रहीत करता है। इसके बाद इन उपलब्धियों को स्लेव नोड पर संग्रहीत नहीं किया जाता है।
वितरित कैश का नुकसान
Hadoop में एक वितरित कैश का ओवरहेड होता है जो इसे इन-प्रोसेस कैश की तुलना में धीमा कर देगा:
a) वस्तु क्रमांकन - इसे वस्तुओं को क्रमबद्ध करना चाहिए। लेकिन क्रमांकन तंत्र में दो मुख्य समस्याएं हैं:
- बहुत भारी - क्रमांकन पूरे वर्ग का नाम, क्लस्टर और असेंबली विवरण संग्रहीत करता है। यह सदस्य चर में अन्य उदाहरणों के संदर्भ भी संग्रहीत करता है। यह सब क्रमांकन को बहुत भारी बनाता है।
- बहुत धीमी - क्रमांकन रनटाइम पर सूचना के प्रकार का निरीक्षण करने के लिए प्रतिबिंब का उपयोग करता है। पूर्व-संकलित कोड की तुलना में परावर्तन एक बहुत धीमी प्रक्रिया है।
निष्कर्ष
वितरित कैश के निष्कर्ष में, हम कह सकते हैं कि, यह MapReduce द्वारा प्रदान की जाने वाली एक सुविधा है। यह अनुप्रयोगों द्वारा आवश्यक होने पर फ़ाइलों को कैश करता है। यह रीड ओनली टेक्स्ट फाइल्स, आर्काइव्स, जार फाइल्स आदि को कैश कर सकता है।
डिफ़ॉल्ट रूप से, वितरित कैश आकार 10 जीबी है। यदि आपको यह ब्लॉग मिलता है, या आपके पास Hadoop में वितरित कैश से संबंधित कोई प्रश्न है, तो बेझिझक हमारे साथ साझा करें।