HBase
 sql >> डेटाबेस >  >> NoSQL >> HBase

सीडीपी परिचालन डेटाबेस के लिए उच्च उपलब्धता (मल्टी-एजेड)

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

इस ब्लॉग में, हम साझा करेंगे कि कैसे AWS में कई उपलब्धता क्षेत्रों पर चलने पर CDP ऑपरेशनल डेटाबेस आपके अनुप्रयोगों के लिए उच्च उपलब्धता प्रदान कर सकता है।

पूरी तरह से समझने के लिए कि मल्टी-एजेड परिनियोजन . क्या है आपके बुनियादी ढांचे के लिए, यह पहचानना महत्वपूर्ण है कि दुनिया भर में अमेज़ॅन वेब सेवाओं को कैसे कॉन्फ़िगर किया गया है और इस प्रकार यह कैसे अतिरेक सेवाएं प्रदान करता है, चाहे आपका स्थान कोई भी हो। जैसा कि अमेज़ॅन के आधिकारिक दस्तावेज़ीकरण में चर्चा की गई है, एडब्ल्यूएस क्लाउड कई क्षेत्रों से बना है, जो दुनिया भर में भौतिक स्थान हैं। जबकि AZ आउटेज को आधिकारिक तौर पर ट्रैक नहीं किया जाता है, Cloudera ग्राहकों ने AZ आउटेज का अनुभव वर्ष में 1-2 बार होने की सूचना दी है। इसलिए, 99.95+% उपलब्धता हासिल करने के लिए मल्टी-एजेड स्ट्रेच परिनियोजन की आवश्यकता है।

प्रत्येक क्षेत्र में कई अलग-अलग भौतिक डेटा केंद्र होते हैं, जिन्हें उपलब्धता क्षेत्र (AZ) . के रूप में जाना जाता है . प्रत्येक AZ अपनी शक्ति, कनेक्टिविटी और नेटवर्किंग क्षमताओं के साथ एक स्व-निहित सुविधा है। अधिकांश क्षेत्रों में प्रत्येक में 2-3 अलग-अलग उपलब्धता क्षेत्र होते हैं, जो किसी दिए गए क्षेत्र के भीतर पर्याप्त अतिरेक प्रदान करते हैं (एक AZ एक क्षेत्र कोड द्वारा दर्शाया जाता है जिसके बाद एक अक्षर पहचानकर्ता होता है; उदाहरण के लिए, us-west-1a)

हालाँकि, यह अतिरेक केवल स्टोरेज लेयर (S3) पर लागू होता है और आपके डेटाबेस इंस्टेंस के लिए उपयोग की जाने वाली वर्चुअल मशीनों के लिए मौजूद नहीं होता है। यदि उपलब्धता ज़ोन के कारण कुछ ऐसा होता है जहाँ आपके सर्वर इंस्टेंसेस एक आउटेज के लिए रहते हैं, तो आपका डेटाबेस कार्य करना बंद कर देगा, क्योंकि संपूर्ण कंप्यूट इन्फ्रास्ट्रक्चर ऑफ़लाइन होगा।

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

डेमो

नव निर्मित सीओडी डेटाबेस स्वचालित रूप से पर्यावरण में सभी कॉन्फ़िगर किए गए उपलब्धता क्षेत्रों का लाभ उठाएंगे। इसलिए उन क्षेत्रों के साथ पर्यावरण स्थापित करना महत्वपूर्ण है जिनका हम उपयोग करना चाहते हैं।

उदाहरण के लिए, हमारे पास निम्नलिखित AZ के साथ एक वातावरण है:us-west-1a, us-west-1b और us-west-1c। जब हम एक COD डेटाबेस को परिनियोजित करते हैं, तो यह स्वचालित रूप से एक बहु-AZ फैशन में तैनात हो जाता है - करने के लिए कुछ नहीं है! आइए परदे के पीछे देखें और देखें कि AWS कंसोल पर क्या है।

COD सुनिश्चित करता है कि वर्कर नोड्स समान रूप से कॉन्फ़िगर किए गए AZ में फैले हुए हैं। (जूकीपर कोरम के लिए उच्च उपलब्धता प्रदान करने के लिए मास्टर्स और लीडर को विभिन्न AZ में भी तैनात किया जाता है।)

Apache HBase में पहले से ही अंतर्निहित विफलता क्षमताएं हैं, इसलिए इस घटना में कि एक AZ ऑफ़लाइन हो जाता है, सिस्टम आपके डेटाबेस की सेवाओं को तुरंत और स्वचालित रूप से जारी रखने के लिए पहले से ही मौजूद है।

थोड़ा और मज़ा जोड़ने के लिए, आइए हमारे परीक्षण के दौरान एक साधारण HBase लोड परीक्षण चलाते हैं। HBase में एक बिल्ट-इन लोड टेस्ट टूल है जिसका उपयोग हम लंबे समय तक चलने वाले राइट टेस्ट के लिए कर सकते हैं:

hbase ltt -लिखें 10:1024:10 -num_keys 10000000

आइए अब AZ विफलता का अनुकरण करें और देखें कि क्या होता है। ऐसा करने का सबसे आसान तरीका एक नया नेटवर्क एसीएल जोड़ना है जो वास्तविक एडब्ल्यूएस आउटेज के समान स्थितियों का प्रदर्शन करने वाले किसी दिए गए सबनेट के प्रवेश और निकास यातायात को अक्षम करता है।

पहले मिनट में हम स्थिति पृष्ठ पर कुछ भी विशेष रूप से दिलचस्प नहीं देखते हैं, क्योंकि सीओडी के दृष्टिकोण से डेटाबेस अभी भी स्वस्थ है।

लेकिन ध्यान दिया कि क्लाइंट ने प्रगति करना बंद कर दिया है।

10-20 सेकंड में, मास्टर को पता चलता है कि कुछ क्षेत्र सर्वर मर चुके हैं।

यदि आउटेज सक्रिय मास्टर को प्रभावित करता है, तो HBase स्वचालित रूप से बैकअप पर स्विच हो जाएगा जो 10-20 सेकंड के बाद भूमिका संभाल लेता है।

विफलता में बहुत अधिक समय नहीं लगता है, 2-3 मिनट और कुछ क्षणिक क्षेत्र त्रुटियों के बाद ग्राहक फिर से प्रगति करने में सक्षम होता है। मास्टर को मृत क्षेत्रों को जीवित क्षेत्र सर्वर में बदलना पड़ा।

आउटेज के अंत का अनुकरण करने के लिए, नेटवर्क ACL निर्माण को हटाकर पूर्ववत करें। रीजन सर्वर वापस मास्टर से जुड़ रहे हैं।

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

HDFS पर COD

क्लाउड में ऑब्जेक्ट स्टोरेज COD के लिए डिफ़ॉल्ट स्टोरेज लेयर है और डेटा को 3 उपलब्धता क्षेत्रों में फैलाता है और पर्दे के पीछे फिर से संतुलन बनाएगा। HBase को केवल कुछ हाउसकीपिंग (क्षेत्र संक्रमण) करना होता है ताकि शेष सर्वरों द्वारा क्षेत्रों की सेवा की जा सके जिससे यह अपेक्षाकृत तेज़ संचालन हो सके।

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

सारांश

बहु-एजेड परिनियोजन अत्यधिक उपलब्ध डेटाबेस के लिए महत्वपूर्ण है और अब सीओडी बिना किसी अतिरिक्त लागत के पर्दे के पीछे तकनीकी पूर्वावलोकन के रूप में एडब्ल्यूएस में इसका समर्थन करता है। यह आपके परिचालन कार्यभार को शून्य अतिरिक्त कॉन्फ़िगरेशन के साथ अधिक मजबूत और विश्वसनीय बनाता है। यह आम तौर पर उपलब्ध होगा और जल्द ही अतिरिक्त क्लाउड प्रदाताओं (Microsoft, Google) का समर्थन करेगा।

यदि आप सार्वजनिक क्लाउड में HBase के अपने परिनियोजन से CDP ऑपरेशनल डेटाबेस में माइग्रेट करने के बारे में अधिक जानने में रुचि रखते हैं या इसे Cloudera टेस्ट ड्राइव के साथ स्पिन के लिए ले जाने के बारे में अधिक जानने में रुचि रखते हैं, तो अपनी Cloudera खाता टीम से संपर्क करें।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. बिग डेटा Hadoop में HDFS इरेज़र कोडिंग

  2. हैशटेबल/सिंकटेबल टूल के साथ HBase क्लस्टर डेटा सिंक्रोनाइज़ेशन

  3. HBase में बैकअप और डिजास्टर रिकवरी के लिए दृष्टिकोण

  4. अपाचे HBase + अपाचे Hadoop + Xceivers

  5. ऑपरेशनल डेटाबेस एक्सेसिबिलिटी