HBase आर्किटेक्चर: HBase डेटा मॉडल और HBase पढ़ें / लिखें तंत्र



HBase आर्किटेक्चर पर यह ब्लॉग HBase डेटा मॉडल की व्याख्या करता है और HBase आर्किटेक्चर की अंतर्दृष्टि देता है। यह HBase में विभिन्न तंत्रों की व्याख्या भी करता है।

HBase वास्तुकला

मेरे पिछले ब्लॉग पर HBase ट्यूटोरियल , मैंने समझाया कि HBase और इसकी विशेषताएं क्या हैं। मैंने आपको बेहतर कनेक्ट करने में मदद करने के लिए फेसबुक मैसेंजर के केस स्टडी का भी उल्लेख किया है। अब और आगे बढ़ रहे हैं हमारे में , मैं आपको HBase और HBase आर्किटेक्चर के डेटा मॉडल के बारे में बताऊंगा।इससे पहले कि आप आगे बढ़ें, आपको यह भी पता होना चाहिए कि HBase एक महत्वपूर्ण अवधारणा है जो इसका एक अभिन्न हिस्सा बनाती है बिग डेटा Hadoop प्रमाणन के लिए।

इस HBase आर्किटेक्चर ब्लॉग के माध्यम से मैं आपको जिन महत्वपूर्ण विषयों पर ले जाऊंगा, वे हैं:





आइए हम पहले HBase के डेटा मॉडल को समझते हैं। यह तेजी से पढ़ने / लिखने और खोजों में HBase की मदद करता है।



HBase आर्किटेक्चर: HBase डेटा मॉडल

जैसा कि हम जानते हैं, HBase एक स्तंभ-उन्मुख NoSQL डेटाबेस है। हालाँकि यह एक रिलेशनल डेटाबेस के समान होता है जिसमें पंक्तियाँ और कॉलम होते हैं, लेकिन यह रिलेशनल डेटाबेस नहीं है। संबंधपरक डेटाबेस पंक्ति उन्मुख होते हैं जबकि HBase स्तंभ-उन्मुख होता है। तो, चलिए पहले कॉलम-ओरिएंटेड और रो-ओरिएंटेड डेटाबेस के बीच अंतर को समझते हैं:

पंक्ति-उन्मुख बनाम स्तंभ-उन्मुख डेटाबेस:

  • रो-ओरिएंटेड डेटाबेस पंक्तियों के अनुक्रम में टेबल रिकॉर्ड को स्टोर करता है। जबकि कॉलम-ओरिएंटेड डेटाबेसस्तंभों के अनुक्रम में स्टोर टेबल रिकॉर्ड, यानी एक कॉलम में प्रविष्टियां डिस्क पर सन्निहित स्थानों में संग्रहीत की जाती हैं।

इसे बेहतर ढंग से समझने के लिए, हम एक उदाहरण लेते हैं और नीचे दी गई तालिका पर विचार करते हैं।



टेबल - HBase आर्किटेक्चर - Edureka

यदि यह तालिका एक पंक्ति-उन्मुख डेटाबेस में संग्रहीत है। यह नीचे दिखाए गए अनुसार रिकॉर्ड संग्रहीत करेगा:

एक,पॉल वॉकर,यू.एस.,231,वीर,

2, विन डीजल,ब्राजील,520 है,मस्टैंग

पंक्ति-उन्मुख डेटाबेस में डेटा को पंक्तियों या ट्यूपल्स के आधार पर संग्रहीत किया जाता है जैसा कि आप ऊपर देख सकते हैं।

जबकि स्तंभ-उन्मुख डेटाबेस इस डेटा को इस प्रकार संग्रहीत करते हैं:

एक,, पॉल वॉकर,विन डीजल, यू.एस.,ब्राजील, 231,520 है, वीर,मस्टैंग

जावा में शक्ति का उपयोग कैसे करें

एक कॉलम-ओरिएंटेड डेटाबेस में, सभी कॉलम वैल्यू को एक साथ स्टोर किया जाता है जैसे कि पहले कॉलम वैल्यू को एक साथ स्टोर किया जाएगा, फिर दूसरे कॉलम वैल्यू को एक साथ स्टोर किया जाएगा और अन्य कॉलम में डेटा को एक समान तरीके से स्टोर किया जाएगा।

  • जब डेटा की मात्रा बहुत बड़ी होती है, जैसे कि पेटाबाइट्स या एक्साबाइट्स के संदर्भ में, हम कॉलम-ओरिएंटेड दृष्टिकोण का उपयोग करते हैं, क्योंकि एकल कॉलम का डेटा एक साथ संग्रहीत होता है और इसे तेजी से एक्सेस किया जा सकता है।
  • जबकि पंक्ति-उन्मुख दृष्टिकोण तुलनात्मक रूप से पंक्तियों और स्तंभों की कम संख्या को कुशलता से संभालता है, क्योंकि पंक्ति-उन्मुख डेटाबेस स्टोर डेटा एक संरचित प्रारूप है।
  • जब हमें अर्ध-संरचित या असंरचित डेटा के एक बड़े सेट को संसाधित करने और विश्लेषण करने की आवश्यकता होती है, तो हम स्तंभ उन्मुख दृष्टिकोण का उपयोग करते हैं। जैसे कि अनुप्रयोगों से निपटने ऑनलाइन विश्लेषणात्मक प्रक्रिया जैसे डेटा माइनिंग, डेटा वेयरहाउसिंग, एनालिटिक्स सहित एप्लिकेशन आदि।
  • जहाँ तक, ऑनलाइन ट्रांसेक्शनल प्रोसेसिंग जैसे कि बैंकिंग और वित्त डोमेन जो संरचित डेटा को संभालते हैं और लेन-देन के गुणों (ACID गुणों) की आवश्यकता होती है, पंक्ति-उन्मुख दृष्टिकोण का उपयोग करते हैं।

HBase तालिकाओं में निम्नलिखित घटक होते हैं, जो नीचे दी गई छवि में दिखाए गए हैं:

  • टेबल्स : डेटा HBase में एक तालिका प्रारूप में संग्रहीत किया जाता है। लेकिन यहां टेबल कॉलम-ओरिएंटेड फॉर्मेट में हैं।
  • पंक्ति चाभी : रो कीज़ का उपयोग उन रिकॉर्ड्स को खोजने के लिए किया जाता है जो खोजों को तेज़ बनाते हैं। आपको यह जानने की उत्सुकता होगी कि कैसे? मैं इसे इस ब्लॉग में आगे बढ़ने वाले आर्किटेक्चर भाग में समझाऊंगा।
  • स्तम्भ परिवार वाले : विभिन्न कॉलम एक कॉलम परिवार में संयुक्त होते हैं। इन स्तंभ परिवारों को एक साथ संग्रहित किया जाता है, जिससे खोज प्रक्रिया तेज़ होती है क्योंकि एक ही स्तंभ परिवार से संबंधित डेटा को एक ही तलाश में एक साथ एक्सेस किया जा सकता है।
  • स्तम्भ क्वालिफायर : प्रत्येक कॉलम का नाम उसके कॉलम क्वालिफायर के रूप में जाना जाता है।
  • सेल : डेटा को कोशिकाओं में संग्रहीत किया जाता है। डेटा को उन कोशिकाओं में डंप किया जाता है, जिन्हें विशेष रूप से रोकी और कॉलम क्वालिफायर द्वारा पहचाना जाता है।
  • टाइमस्टैम्प : टाइमस्टैम्प तिथि और समय का मेल है। जब भी डेटा संग्रहीत किया जाता है, तो वह अपने टाइमस्टैम्प के साथ संग्रहीत होता है। इससे डेटा के किसी विशेष संस्करण की खोज करना आसान हो जाता है।

एक अधिक सरल और समझदार तरीके से, हम कह सकते हैं कि HBase में निम्न शामिल हैं:

  • तालिकाओं का सेट
  • स्तंभ परिवारों और पंक्तियों के साथ प्रत्येक तालिका
  • रो कुंजी HBase में एक प्राथमिक कुंजी के रूप में कार्य करता है।
  • HBase तालिकाओं की किसी भी पहुंच इस प्राथमिक कुंजी का उपयोग करती है
  • HBase में मौजूद प्रत्येक कॉलम क्वालिफायर उस ऑब्जेक्ट के अनुरूप विशेषता को दर्शाता है जो सेल में रहता है।

अब जब आप HBase डेटा मॉडल के बारे में जानते हैं, तो आइए देखें कि यह डेटा मॉडल HBase आर्किटेक्चर के अनुरूप कैसे आता है और यह बड़े स्टोरेज और तेज़ प्रोसेसिंग के लिए उपयुक्त है।

HBase आर्किटेक्चर: HBase आर्किटेक्चर के घटक

HBase के तीन प्रमुख घटक हैं, अर्थात् HMaster सर्वर , HBase क्षेत्र सर्वर, क्षेत्र तथा ज़ुकरदार

नीचे दिया गया आंकड़ा HBase आर्किटेक्चर के पदानुक्रम की व्याख्या करता है। हम उनमें से प्रत्येक के बारे में व्यक्तिगत रूप से बात करेंगे।


अब HMaster में जाने से पहले, हम रीजन को समझेंगे क्योंकि ये सभी Servers (HMaster, Region Server, Zookeeper) को कोऑर्डिनेट करने और मैनेज करने और रीजन के अंदर विभिन्न ऑपरेशन करने के लिए रखे गए हैं। तो आप यह जानने के लिए उत्सुक होंगे कि क्षेत्र क्या हैं और वे इतने महत्वपूर्ण क्यों हैं?

HBase वास्तुकला: क्षेत्र

किसी क्षेत्र में प्रारंभ कुंजी और उस क्षेत्र को दी गई अंतिम कुंजी के बीच सभी पंक्तियाँ होती हैं। HBase तालिकाओं को कई क्षेत्रों में इस तरह से विभाजित किया जा सकता है कि एक कॉलम परिवार के सभी कॉलम एक क्षेत्र में संग्रहीत किए जाते हैं। प्रत्येक क्षेत्र में क्रमबद्ध क्रम में पंक्तियाँ होती हैं।

कई क्षेत्रों को सौंपा गया है क्षेत्र सर्वर , जो प्रबंधन, प्रबंधन, क्रियान्वयन को पढ़ता है और उस क्षेत्र के सेट पर संचालन लिखता है।

तो, एक सरल तरीके से समापन:

  • एक तालिका को कई क्षेत्रों में विभाजित किया जा सकता है। रीजन, स्टार्ट की और एंड की के बीच डेटा स्टोर करने वाली पंक्तियों की एक क्रमबद्ध श्रेणी है।
  • एक क्षेत्र में 256MB का एक डिफ़ॉल्ट आकार होता है जिसे आवश्यकता के अनुसार कॉन्फ़िगर किया जा सकता है।
  • क्षेत्रों का एक समूह एक क्षेत्र सर्वर द्वारा ग्राहकों को दिया जाता है।
  • एक क्षेत्र सर्वर क्लाइंट को लगभग 1000 क्षेत्रों की सेवा दे सकता है।

अब पदानुक्रम के शीर्ष से शुरू करते हुए, मैं सबसे पहले आपको HMaster सर्वर के बारे में समझाना चाहूंगा जो इसी तरह एक NameNell के रूप में कार्य करता है HDFS । फिर, पदानुक्रम में नीचे बढ़ते हुए, मैं आपको चिड़ियाघरकीपर और क्षेत्र सर्वर के माध्यम से ले जाऊंगा।

HBase वास्तुकला: HMaster

नीचे की छवि के अनुसार, आप देख सकते हैं कि एचएमआस्टर डेटा सर्वर पर निवास करने वाले रीजन सर्वर का एक संग्रह संभालता है। आइए हम समझते हैं कि HMaster कैसे करता है।

  • HBase HMaster DDL ऑपरेशंस (टेबल बनाने और डिलीट करने) करता है और रीजन को सर्वरों को असाइन करता है जैसा कि आप ऊपर की इमेज में देख सकते हैं।
  • यह क्षेत्र सर्वर को निर्देशांक और प्रबंधित करता है (जैसा कि NameNode HDNFS में DataNode का प्रबंधन करता है)।
  • यह स्टार्टअप पर रीजन सर्वर को रीजन देता है और रिकवरी और लोड बैलेंसिंग के दौरान रीजन सेक्टर्स को रीजन असाइन करता है।
  • यह क्लस्टर में सभी क्षेत्र सर्वर के उदाहरणों पर नज़र रखता है (ज़ुकीपर की मदद से) और जब भी कोई भी क्षेत्र सर्वर डाउन होता है, तब वह पुनर्प्राप्ति गतिविधियाँ करता है।
  • यह तालिकाओं को बनाने, हटाने और अद्यतन करने के लिए एक इंटरफ़ेस प्रदान करता है।

HBase में एक वितरित और विशाल वातावरण है जहाँ HM HM अकेले सब कुछ प्रबंधित करने के लिए पर्याप्त नहीं है। तो, आप सोच रहे होंगे कि इस विशाल वातावरण को प्रबंधित करने के लिए HMaster क्या मदद करता है? यह वह जगह है जहाँ ज़ूकीपर तस्वीर में आता है। जब हम समझ गए कि HMaster HBase पर्यावरण का प्रबंधन कैसे करता है, तो हम समझेंगे कि Zookeeper HMaster को पर्यावरण के प्रबंधन में कैसे मदद करता है।

HBase वास्तुकला: चिड़ियाघर कीपर - समन्वयक

यह नीचे दी गई तस्वीर ज़ूकीपर के समन्वय तंत्र की व्याख्या करती है।

  • ज़ूकाइज़र HBase वितरित वातावरण के अंदर एक समन्वयक की तरह कार्य करता है। यह सत्र के माध्यम से संचार करके क्लस्टर के अंदर सर्वर स्थिति बनाए रखने में मदद करता है।
  • HMaster सर्वर के साथ हर क्षेत्र सर्वर नियमित अंतराल पर ज़ुकीपर को निरंतर धड़कन भेजता है और यह जाँचता है कि कौन सा सर्वर जीवित है और उपर्युक्त छवि में उपलब्ध है। यह सर्वर विफलता सूचनाएं भी प्रदान करता है ताकि, पुनर्प्राप्ति उपायों को निष्पादित किया जा सके।
  • उपरोक्त छवि से संदर्भित आप देख सकते हैं, एक निष्क्रिय सर्वर है, जो सक्रिय सर्वर के लिए बैकअप के रूप में कार्य करता है। यदि सक्रिय सर्वर विफल हो जाता है, तो यह बचाव के लिए आता है।
  • सक्रिय HMaster दिल की धड़कन Zookeeper को भेजता है जबकि निष्क्रिय HMaster सक्रिय HMaster द्वारा भेजे गए अधिसूचना के लिए सुनता है। यदि सक्रिय HMaster दिल की धड़कन भेजने में विफल रहता है तो सत्र हटा दिया जाता है और निष्क्रिय HMaster सक्रिय हो जाता है।
  • जबकि यदि कोई क्षेत्र सर्वर दिल की धड़कन भेजने में विफल रहता है, तो सत्र समाप्त हो जाता है और सभी श्रोताओं को इसके बारे में सूचित किया जाता है। तब HMaster उपयुक्त पुनर्प्राप्ति क्रिया करता है जिसकी चर्चा हम इस ब्लॉग में बाद में करेंगे।
  • Zookeeper .META सर्वर का मार्ग भी बनाए रखता है, जो किसी भी क्षेत्र को खोजने में किसी भी क्लाइंट की मदद करता है। क्लाइंट को सबसे पहले .META सर्वर के साथ चेक करना होता है जिसमें रीजन सर्वर एक रीजन होता है और उसे उस रीजन सर्वर का रास्ता मिल जाता है।

जैसा कि मैंने .META सर्वर के बारे में बात की है, मुझे पहले बताएं कि .META सर्वर क्या है? तो, आप आसानी से ZooKeeper और .META सर्वर के काम को एक साथ संबंधित कर सकते हैं। बाद में, जब मैं आपको इस ब्लॉग में HBase खोज तंत्र समझाऊंगा, तो मैं बताऊंगा कि ये दोनों कैसे सहयोग में काम करते हैं।

HBase वास्तुकला: मेटा टेबल

  • META तालिका एक विशेष HBase कैटलॉग तालिका है। यह सभी क्षेत्र सेवकों की सूची रखता है HBase भंडारण प्रणाली में, जैसा कि आप ऊपर की छवि में देख सकते हैं।
  • आप जो आकृति देख सकते हैं, उसे देखते हुए, .META फ़ाइल कुंजियों और मूल्यों के रूप में तालिका को बनाए रखती है। कुंजी क्षेत्र और इसकी आईडी की शुरुआत की कुंजी का प्रतिनिधित्व करती है जबकि मूल्य में क्षेत्र सर्वर का पथ होता है।

जैसा कि मैंने पहले ही चर्चा की है, जब मैं आपको क्षेत्र की व्याख्या कर रहा था, तब सर्वर और उसके कार्यों पर चर्चा की गई थी, अब हम पदानुक्रम को आगे बढ़ा रहे हैं और मैं क्षेत्र सर्वर के घटक और उनके कार्यों पर ध्यान केंद्रित करूंगा। बाद में मैं खोज, पढ़ने, लिखने और समझने के तंत्र पर चर्चा करूंगा कि ये सभी घटक एक साथ कैसे काम करते हैं।

HBase वास्तुकला: क्षेत्र सर्वर के घटक

यह नीचे की छवि क्षेत्र सर्वर के घटकों को दिखाती है। अब, मैं उनसे अलग से चर्चा करूंगा।

एक क्षेत्र सर्वर विभिन्न क्षेत्रों को शीर्ष पर रखता है । एक क्षेत्र सर्वर के घटक हैं:

__इस में__
  • वाल: जैसा कि आप ऊपर की छवि से निष्कर्ष निकाल सकते हैं, लिखें अहेड लॉग (वाल) वितरित वातावरण के अंदर हर क्षेत्र सर्वर से जुड़ी एक फ़ाइल है। वाल नए डेटा को संग्रहीत करता है जो स्थायी स्टोरेज के लिए स्थायी या प्रतिबद्ध नहीं है। डेटा सेट को पुनर्प्राप्त करने में विफलता के मामले में इसका उपयोग किया जाता है।
  • ब्लॉक कैश: उपरोक्त छवि से, यह स्पष्ट रूप से दिखाई देता है कि ब्लॉक कैश रीजन सर्वर के शीर्ष में रहता है। यह मेमोरी में अक्सर पढ़े गए डेटा को स्टोर करता है। यदि ब्लॉकचैच में डेटा कम से कम हाल ही में उपयोग किया गया है, तो उस डेटा को ब्लॉकचैच से हटा दिया जाता है।
  • मेमोस्टोर: यह राइट कैश है। यह डिस्क या स्थायी मेमोरी में आने से पहले आने वाले सभी डेटा को स्टोर करता है। एक क्षेत्र में प्रत्येक स्तंभ परिवार के लिए एक मेमस्टोर है। जैसा कि आप छवि में देख सकते हैं, एक क्षेत्र के लिए कई MemStores हैं क्योंकि प्रत्येक क्षेत्र में कई स्तंभ परिवार हैं। डेटा को डिस्क पर करने से पहले लेक्सोग्राफिक क्रम में क्रमबद्ध किया जाता है।
  • HFile: उपरोक्त आंकड़े से आप देख सकते हैं कि एचएफआईएल एचडीएफएस पर संग्रहीत है। इस प्रकार यह डिस्क पर वास्तविक कोशिकाओं को संग्रहीत करता है। जब मेमेस्टोर का आकार अधिक हो जाता है तो मेमेस्टोर डाटा को एचएफइल में भेजता है।

अब जब हम HBase आर्किटेक्चर के प्रमुख और मामूली घटकों को जानते हैं, तो मैं इस में तंत्र और उनके सहयोगी प्रयास की व्याख्या करूंगा। चाहे वह पढ़ना हो या लिखना, पहले हमें यह खोजना होगा कि कहां से पढ़ना है या कहां से फाइल लिखना है। तो, आइए इस खोज प्रक्रिया को समझें, क्योंकि यह एक ऐसा तंत्र है जो HBase को बहुत लोकप्रिय बनाता है।

HBase वास्तुकला: HBase में प्रारंभिक खोज कैसे करें?

जैसा कि आप जानते हैं, ज़ूकेटर मेटा तालिका स्थान संग्रहीत करता है। जब भी कोई ग्राहक HBase के अनुरोध को पढ़ता या लिखता है, तो निम्नलिखित ऑपरेशन होते हैं:

  1. क्लाइंट चिड़ियाघरकीपर से मेटा तालिका का स्थान प्राप्त करता है।
  2. क्लाइंट तब इसे एक्सेस करने के लिए मेटा तालिका से संबंधित पंक्ति कुंजी के क्षेत्र सर्वर के स्थान के लिए अनुरोध करता है। ग्राहक मेटा तालिका के स्थान के साथ इस जानकारी को कैश करता है।
  3. तब यह संबंधित क्षेत्र सर्वर से अनुरोध करके पंक्ति स्थान प्राप्त करेगा।

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

हर बार, क्लाइंट मेटा सर्वर से रीजन सर्वर के स्थान को प्राप्त करने में समय बर्बाद नहीं करते हैं, इस प्रकार, यह समय बचाता है और खोज को तेज करता है। अब, मैं आपको बताता हूं कि HBase में लेखन कैसे होता है। इसमें क्या घटक शामिल हैं और वे कैसे शामिल हैं?

HBase वास्तुकला: HBase लिखें तंत्र

यह नीचे की छवि HBase में लेखन तंत्र की व्याख्या करती है।

क्रमबद्ध तरीके से लेखन तंत्र निम्नलिखित प्रक्रिया से गुजरता है (उपरोक्त छवि देखें):

स्टेप 1: जब भी क्लाइंट के पास लिखने का अनुरोध होता है, तो क्लाइंट डेटा को वाल (राइट अहेड लॉग) लिखता है।

  • संपादन फिर वाल फ़ाइल के अंत में जोड़ा जाता है।
  • यह वाल फाइल हर रीजन सर्वर में बनी रहती है और रीजन सर्वर इसका उपयोग डाटा को रिकवर करने के लिए करता है जो डिस्क के लिए प्रतिबद्ध नहीं है।

चरण 2: एक बार जब डेटा को वाल पर लिखा जाता है, तो उसे मेमस्टोर में कॉपी किया जाता है।

चरण 3: एक बार जब डेटा को मेम्स्टोर में रखा जाता है, तो क्लाइंट को पावती मिलती है।

चरण 4: जब MemStore थ्रेशोल्ड तक पहुंचता है, तो यह डेटा को एक HFile में डंप करता है या करता है।

अब हम एक गहरी डुबकी लेते हैं और समझते हैं कि मेमस्ट्रोर लेखन प्रक्रिया में कैसे योगदान देता है और इसके कार्य क्या हैं?

HBase लिखें तंत्र- मेमोस्टोर

  • मेमेस्टोर हमेशा एक लेक्सोग्राफिक ऑर्डर (क्रमबद्ध रूप से एक शब्दकोश तरीके) में सॉर्ट किए गए KeyValues ​​के रूप में, इसमें संग्रहीत डेटा को अपडेट करता है। प्रत्येक स्तंभ परिवार के लिए एक MemStore है, और इस प्रकार अद्यतन प्रत्येक स्तंभ परिवार के लिए क्रमबद्ध तरीके से संग्रहीत किए जाते हैं।
  • जब MemStore दहलीज पर पहुंचता है, तो यह सभी डेटा को नए HFile में क्रमबद्ध तरीके से डंप करता है। यह HFile HDFS में संग्रहित है। HBase में प्रत्येक कॉलम परिवार के लिए कई HFiles होते हैं।
  • समय के साथ, मेम्फोर डंप करने के बाद एचएफली की संख्या बढ़ती है।
  • MemStore अंतिम लिखित अनुक्रम संख्या को भी बचाता है, इसलिए मास्टर सर्वर और MemStore दोनों को पता है, कि अब तक क्या किया गया है और कहां से शुरू करना है। जब क्षेत्र शुरू होता है, तो अंतिम अनुक्रम संख्या पढ़ी जाती है, और उस संख्या से नए संपादन शुरू होते हैं।

जैसा कि मैंने कई बार चर्चा की, कि HFile एक HBase आर्किटेक्चर में मुख्य लगातार स्टोरेज है। अंत में, सभी डेटा HFile के लिए प्रतिबद्ध है जो HBase का स्थायी भंडारण है। इसलिए, आइए हम HFile के गुणों को देखें जो इसे पढ़ते और लिखते समय खोज के लिए तेज़ बनाता है।

HBase वास्तुकला: HBase लिखें तंत्र- HFile

  • लेखन को डिस्क पर क्रमिक रूप से रखा जाता है। इसलिए, डिस्क के रीड-राइट हेड की गति बहुत कम है। यह लेखन और खोज तंत्र को बहुत तेज बनाता है।
  • जब भी कोई HFile खोला जाता है तो HFile इंडेक्स को मेमोरी में लोड किया जाता है। यह एक ही तलाश में एक रिकॉर्ड खोजने में मदद करता है।
  • ट्रेलर एक पॉइंटर है जो HFile के मेटा ब्लॉक की ओर इशारा करता है। यह प्रतिबद्ध फ़ाइल के अंत में लिखा गया है। इसमें टाइमस्टैम्प और ब्लूम फ़िल्टर के बारे में जानकारी है।
  • ब्लूम फ़िल्टर प्रमुख मूल्य युग्मों को खोजने में मदद करता है, यह उस फ़ाइल को छोड़ देता है जिसमें आवश्यक पंक्तिबद्ध नहीं होता है। टाइमस्टैम्प फ़ाइल के एक संस्करण को खोजने में भी मदद करता है, यह डेटा को लंघन करने में मदद करता है।

लेखन तंत्र को जानने और लिखने और तेजी से खोजने में विभिन्न घटकों की भूमिका के बाद। मैं आपको समझा रहा हूं कि HBase आर्किटेक्चर के अंदर रीडिंग मैकेनिज्म कैसे काम करता है? फिर हम उन तंत्रों की ओर बढ़ेंगे जो संघनन, क्षेत्र विभाजन और पुनर्प्राप्ति जैसे HBase प्रदर्शन को बढ़ाते हैं।

HBase वास्तुकला: तंत्र पढ़ें

जैसा कि हमारे खोज तंत्र में चर्चा की जाती है, पहले ग्राहक रीजन सर्वर से लोकेशन को .META सर्वर से हटाता है, यदि क्लाइंट के पास उसकी कैश मेमोरी में नहीं है। फिर यह क्रमिक चरणों से होकर गुजरता है:

  • डेटा पढ़ने के लिए, स्कैनर पहले ब्लॉक कैश में रो सेल के लिए दिखता है। यहाँ हाल ही में पढ़ी गई सभी प्रमुख मूल्य जोड़ियाँ संग्रहीत हैं।
  • यदि स्कैनर आवश्यक परिणाम प्राप्त करने में विफल रहता है, तो यह मेमस्टोर पर जाता है, जैसा कि हम जानते हैं कि यह लेखन कैश मेमोरी है। वहां, यह सबसे हाल ही में लिखी गई फाइलों की खोज करता है, जिसे अभी तक HFile में डंप नहीं किया गया है।
  • अंत में, यह HFile से डेटा लोड करने के लिए ब्लूम फ़िल्टर और ब्लॉक कैश का उपयोग करेगा।

अब तक, मैंने HBase की खोज, पढ़ने और लिखने के तंत्र पर चर्चा की है। अब हम HBase तंत्र को देखेंगे जो HBase में त्वरित खोज, पढ़ना और लिखना बनाता है। पहले हम समझेंगे संघनन , जो उन तंत्रों में से एक है।

HBase वास्तुकला: संघनन

HBase भंडारण को कम करने और पढ़ने के लिए आवश्यक डिस्क की संख्या को कम करने के लिए HFiles को जोड़ती है। इस प्रक्रिया को कहा जाता है संघनन । संघनन एक क्षेत्र से कुछ HFiles चुनता है और उन्हें जोड़ती है। उपरोक्त छवि में आप देख सकते हैं कि दो प्रकार के संघनन हैं।

  1. मामूली संघनन : HBase स्वचालित रूप से छोटे HFiles को चुनता है और उन्हें उपरोक्त छवि में दिखाए गए अनुसार बड़े HFiles को सुझाता है। इसे माइनर कंपटीशन कहा जाता है। यह छोटे HFiles को बड़ा HFiles करने के लिए मर्ज सॉर्ट करता है। यह स्टोरेज स्पेस ऑप्टिमाइजेशन में मदद करता है।
  2. प्रमुख संघनन: जैसा कि ऊपर की छवि में दिखाया गया है, मेजर संघनन में, HBase विलय और एक नए HFile के लिए एक क्षेत्र के छोटे HFiles की सिफारिश करता है। इस प्रक्रिया में, एक ही स्तंभ परिवारों को नए HFile में एक साथ रखा गया है। यह इस प्रक्रिया में हटाए गए और समाप्त सेल को छोड़ देता है। यह पढ़ने के प्रदर्शन को बढ़ाता है।

लेकिन इस प्रक्रिया के दौरान, इनपुट-आउटपुट डिस्क और नेटवर्क ट्रैफ़िक की भीड़ हो सकती है। इस रूप में जाना जाता है प्रवर्धन लिखें । तो, यह आमतौर पर कम चोटी लोड समय के दौरान निर्धारित किया जाता है।

अब एक और प्रदर्शन अनुकूलन प्रक्रिया है जिस पर मैं चर्चा करूंगा क्षेत्र विभाजन । यह लोड संतुलन के लिए बहुत महत्वपूर्ण है।

HBase वास्तुकला: क्षेत्र विभाजन

नीचे दी गई आकृति क्षेत्र स्प्लिट तंत्र को दर्शाती है।

जब भी कोई क्षेत्र बड़ा हो जाता है, तो इसे दो बाल क्षेत्रों में विभाजित किया जाता है, जैसा कि उपरोक्त आंकड़े में दिखाया गया है। प्रत्येक क्षेत्र मूल क्षेत्र के ठीक आधे हिस्से का प्रतिनिधित्व करता है। फिर इस विभाजन को HMaster को सूचित किया जाता है। यह उसी रीजन सर्वर द्वारा हैंडल किया जाता है जब तक कि HMaster उन्हें लोड बैलेंसिंग के लिए एक नए रीजन सर्वर को आवंटित नहीं करता है।

लाइन से नीचे जाना, अंतिम लेकिन कम से कम, मैं आपको समझाता हूं कि विफलता के बाद HBase डेटा को कैसे पुनर्प्राप्त करता है। जैसा कि हम जानते हैं कि विफलता वसूली HBase की एक बहुत ही महत्वपूर्ण विशेषता है, इस प्रकार आइए जानते हैं कि विफलता के बाद HBase डेटा कैसे पुनर्प्राप्त करता है।

HBase वास्तुकला: HBase क्रैश और डेटा रिकवरी

  • जब भी कोई रीजनल सर्वर फेल होता है, तो ज़ूकेटर HMaster को विफलता के बारे में सूचित करता है।
  • तब HMaster दुर्घटनाग्रस्त क्षेत्र सर्वर के क्षेत्रों को कई सक्रिय क्षेत्र सर्वर को वितरित और आवंटित करता है। विफल क्षेत्र सर्वर के MemStore के डेटा को पुनर्प्राप्त करने के लिए, HMaster सभी क्षेत्र सर्वर को वाल वितरित करता है।
  • प्रत्येक क्षेत्र सर्वर उस विफल क्षेत्र के स्तंभ परिवार के लिए मेमस्टोर बनाने के लिए वाल को फिर से निष्पादित करता है।
  • वाल में कालानुक्रमिक क्रम (समयबद्ध क्रम में) में डेटा लिखा जाता है। इसलिए, पुन: क्रियान्वित करने का अर्थ है कि वाल का मतलब है कि सभी बदलाव जो मेमेस्टोर फ़ाइल में किए गए और संग्रहीत किए गए हैं।
  • इसलिए, सभी क्षेत्र सर्वर वाल को निष्पादित करने के बाद, सभी स्तंभ परिवार के लिए मेमस्टोर डेटा पुनर्प्राप्त किया जाता है।

मुझे उम्मीद है कि इस ब्लॉग ने आपको HBase डेटा मॉडल और HBase आर्किटेक्चर को समझने में मदद की होगी। उम्मीद है तुम्हें मजा आया। अब आप HBase की सुविधाओं से संबंधित कर सकते हैं (जो मैंने अपने पिछले हिस्से में समझाया था HBase ट्यूटोरियल ब्लॉग) HBase आर्किटेक्चर के साथ और समझें कि यह आंतरिक रूप से कैसे काम करता है। अब जब आप HBase के सैद्धांतिक भाग को जानते हैं, तो आपको व्यावहारिक भाग में जाना चाहिए। इसी को ध्यान में रखते हुए हमारा अगला ब्लॉग एक नमूना समझा रहा हूँ HBase POC

अब जब आप HBase आर्किटेक्चर को समझ गए हैं, तो देखें 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। Edureka Big Data Hadoop सर्टिफिकेशन ट्रेनिंग कोर्स शिक्षार्थियों को रिटेल, सोशल मीडिया, एविएशन, टूरिज्म, फाइनेंस डोमेन पर रियल-टाइम उपयोग के मामलों का उपयोग करके HDFS, यार्न, MapReduce, Pig, Hive, HBase, Oozie, Flume और Sqoop में निपुण बनने में मदद करता है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया टिप्पणी अनुभाग में इसका उल्लेख करें और हम आपके पास वापस आ जाएंगे।