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

अपाचे HBase क्या करें और क्या न करें

मैंने हाल ही में LA Hadoop User Group में Apache HBase Do's और Don'ts के बारे में बात की थी। श्रोता उत्कृष्ट थे और उनके पास बहुत ही जानकारीपूर्ण और अच्छी तरह से व्यक्त प्रश्न थे। Shopzilla के जोडी एक उत्कृष्ट मेजबान थे और 60 से अधिक LA Hadoopers के साथ बात करने का अवसर देने के लिए मैं उनका बहुत-बहुत धन्यवाद करता हूं। चूंकि हर कोई एलए में नहीं रहता है या बैठक में शामिल नहीं हो सकता है, इसलिए मैंने यहां कुछ मुख्य बिंदुओं को संक्षेप में प्रस्तुत किया है। आप में से जो व्यस्त दिन में हैं, उनके लिए यह है tl;dr:

  • HBase अच्छा है, लेकिन RDBMS या HDFS प्रतिस्थापन नहीं है
  • अच्छे कॉन्फ़िगरेशन का अर्थ है अच्छा संचालन
  • मॉनिटर मॉनीटर मॉनीटर मॉनीटर मॉनीटर

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

HBase का उपयोग कब करें

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

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

सहायक सेवाएं

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

मैंने कहा है कि HBase का चयन करते समय सबसे महत्वपूर्ण विचार यह सुनिश्चित करना है कि आपके पास एक उपयोग केस है जो फिट बैठता है। HBase का उपयोग करते समय सबसे महत्वपूर्ण बात सिस्टम की निगरानी करना है। सफल HBase संचालन के लिए निगरानी महत्वपूर्ण है। जैसा कि कई वितरित प्रणालियों के मामले में है, HBase कैस्केडिंग विफलताओं के लिए अतिसंवेदनशील है। यदि एक नोड की अदला-बदली शुरू हो जाती है तो यह मास्टर के साथ संपर्क खो सकता है, जिससे दूसरा सर्वर लोड उठा सकता है और अधिक बोझ बन सकता है। वह दूसरा सर्वर विफल हो जाएगा और विफलता कैस्केड हो जाएगी। आपको यह सुनिश्चित करने के लिए कि वे स्वस्थ मापदंडों के भीतर काम कर रहे हैं, आपको अपने प्रत्येक HBase नोड्स पर मेमोरी, सीपीयू, आई / ओ और नेटवर्क विलंबता और बैंडविड्थ की निगरानी करने की आवश्यकता है। स्वस्थ HBase क्लस्टर के संचालन के लिए निगरानी सबसे महत्वपूर्ण अभ्यास है।

HBase आर्किटेक्चर के लिए अच्छे अभ्यास

अपने अच्छी तरह से निगरानी में रखे गए HBase क्लस्टर के लिए एक सही उपयोग केस चलाने के लिए तेजी से आगे बढ़ें, यहां कुछ अच्छे अभ्यास दिए गए हैं। एक प्रमुख उपसर्ग का उपयोग करें जो आपके उपयोग के मामले के आधार पर अच्छी तरह से वितरित हो। यदि आप टाइमस्टैम्प या किसी भी समान मान से अपनी कुंजी को उपसर्ग करते हैं, जब सॉर्ट किया जाता है, बैच में संग्रहीत या पूछताछ की जाती है तो आप लोड को समान रूप से वितरित करने के बजाय बदले में प्रत्येक क्षेत्र सर्वर को अधिभारित करेंगे। आपको मेमस्टोर आकार और रैम की मात्रा के आधार पर क्षेत्रों की संख्या को उचित संख्या में रखना चाहिए और लंबे जीसी विराम को कम करने के लिए क्षेत्र सर्वर जेवीएम 12 जीबी जावा ढेर तक सीमित होना चाहिए। उदाहरण के लिए, 36GB RAM वाली एक मशीन जो एक DataNode डेमॉन भी चला रही है, सक्रिय लेखन के साथ लगभग 100 क्षेत्रों को संभाल सकती है और प्रत्येक 48MB का एक मेमस्टोर है। यह DataNode और RegionServer मेमोरी आवश्यकताओं, Linux फ़ाइल बफर स्पेस और प्रत्येक RegionServer के लिए उचित फ्लश आकार के लिए पर्याप्त हेडरूम की अनुमति देता है।

कुछ कॉन्फ़िगरेशन अनुशंसाओं में ऑटो-संघनन को अक्षम करना शामिल है (डिफ़ॉल्ट रूप से यह आपके प्रारंभ के समय से हर 24 घंटे में होता है। HBase) और इसे हर दिन ऑफ-पीक समय पर चलाने के लिए शेड्यूल करें। आपको संपीड़न (जैसे LZO) को भी कॉन्फ़िगर करना चाहिए और स्पष्ट रूप से सही ढंग से कॉन्फ़िगर की गई HBase conf निर्देशिका को अपने क्लासस्पैट में रखना चाहिए।

HBase नहीं करता

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

HBase क्लस्टर पर मिश्रित कार्यभार चलाते समय सावधान रहें। जब आपके पास HBase पर SLAs किसी भी MapReduce जॉब से स्वतंत्र होते हैं (उदाहरण के लिए, पिग में परिवर्तन और HBase से डेटा की सेवा) उन्हें अलग क्लस्टर पर चलाते हैं। HBase छिटपुट बड़े अनुक्रमिक I/O पहुंच के साथ CPU और मेमोरी गहन है जबकि MapReduce नौकरियां मुख्य रूप से I/O निश्चित मेमोरी और छिटपुट CPU के साथ बाध्य हैं। संयुक्त ये दोनों के बीच HBase और CPU विवाद के लिए अप्रत्याशित विलंबता पैदा कर सकते हैं। एक साझा क्लस्टर को HBase CPU आवश्यकताओं को समायोजित करने के लिए प्रति नोड कम कार्य स्लॉट की आवश्यकता होती है (आमतौर पर प्रत्येक नोड पर आधे स्लॉट जो आप HBase के बिना आवंटित करेंगे)। मेमोरी स्वैप पर भी नजर रखें। यदि HBase स्वैप करना शुरू करता है तो एक अच्छा मौका है कि यह दिल की धड़कन को याद करेगा और क्लस्टर से हटा दिया जाएगा। एक व्यस्त क्लस्टर पर यह दूसरे क्षेत्र को अधिभारित कर सकता है, जिससे यह स्वैप और विफलताओं का एक झरना बन सकता है।

अंतिम विचार

सारांशित करने से पहले एक आखिरी सलाह। HBase लोड करते समय, यदि MapReduce जॉब के माध्यम से लोड हो रहा है या बैच किए गए पुट का उपयोग कर सर्वर के संग्रह के माध्यम से HFileOuputFormat का उपयोग करें। एकल क्लाइंट के साथ लोड करना उस क्लाइंट पर अड़चन डालेगा और HBase द्वारा वहन की जाने वाली मापनीयता का लाभ नहीं उठाएगा।

संक्षेप में, HBase पर विचार करें जब आप कुंजी द्वारा डेटा लोड कर रहे हों, कुंजी (या श्रेणी) द्वारा डेटा खोज रहे हों, कुंजी द्वारा डेटा की सेवा कर रहे हों, कुंजी द्वारा डेटा क्वेरी कर रहे हों या पंक्ति द्वारा डेटा संग्रहीत कर रहे हों जो किसी स्कीमा के अनुरूप नहीं है।

मामलों का उपयोग करें

  • अपाचे HBase:HBase विकी द्वारा संचालित
  • मोज़िला:सोकोरो को HBase में स्थानांतरित करना
  • Facebook:Facebook का नया रीयल-टाइम मैसेजिंग सिस्टम:HBase
  • StumbleUpon:HBase at StumbleUpon

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hadoop - शुरुआती के लिए एक Apache Hadoop ट्यूटोरियल

  2. HBase संघनन क्या हैं?

  3. क्लौडेरा ऑपरेशनल डेटाबेस एप्लीकेशन डेवलपमेंट कॉन्सेप्ट्स

  4. हडूप में मैप ओनली जॉब क्या है?

  5. कैसे करें:HBase थ्रिफ्ट इंटरफ़ेस का उपयोग करें, भाग 1