2014-05-15 6 views
15

मेरे पास लोड बैलेंसर के बारे में एक मूलभूत सवाल है। मैंने अपने हैडूप (2.3) क्लस्टर में नए नोड्स को जोड़ना शुरू कर दिया है जिसमें एचबीएएस v0.98 भी है।नोड जोड़ों के बाद हडूप और हबेस रीबैलेंसिंग

  1. कैसे HBase Hadoop rebalancer से प्रभावित होता है, इसके अलावा के बाद और Hadoop और HBase में सभी नोड्स ऑनलाइन हो रही है? क्या मुझे हडूप रीबैलेंस के बाद हबेज को पुन: संतुलित करने की कोशिश करने की ज़रूरत है?

  2. मेरा हैडोप क्लस्टर पूरी तरह से हबेस द्वारा कब्जा कर लिया गया है। Balancer_switch = true सेट करना, क्या यह स्वचालित रूप से hbase और hadoop को पुनर्व्यवस्थित करेगा?

  3. यह सुनिश्चित करने का सबसे अच्छा तरीका क्या है कि हैडूप और हबेस दोनों को पुन: संतुलित किया गया है और ठीक काम भी है?

उत्तर

2

हैडोप डिफ़ॉल्ट रूप से ब्लॉक स्तर संतुलन नहीं करता है। ऐसे कुछ टूल हैं जिनका उपयोग आप हडोप में मैन्युअल रूप से संतुलन करने के लिए कर सकते हैं, अर्थात् https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/CommandsManual.html#balancer। ध्यान दें कि एचडीएफएस को संतुलित करना वास्तव में काफी महंगा है यदि आपके पास पूरी तरह से खाली या नए नोड्स की एक छोटी संख्या है जिसे आपने अभी तक किसी अन्य पूर्ण क्लस्टर में जोड़ा है, और इसके साथ मेरा अनुभव यह है कि यह केवल एचडीएफएस ब्लॉक को संतुलित करने का एक अच्छा काम करता है । बैलेंसर कई बार चलाना समग्र संतुलन में सुधार कर सकता है। कुछ वैकल्पिक कार्यान्वयन भी हैं जो हडोप में अंतर्निहित एक से संतुलित संतुलन का बेहतर काम कर सकते हैं।

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

balancer_switch केवल क्षेत्ररक्षक संतुलन को प्रभावित करता है। एचबीएस स्वचालित रूप से क्लस्टर में अपने क्षेत्रों को डिफ़ॉल्ट रूप से संतुलित कर देगा, लेकिन आप से किसी भी समय मैन्युअल रूप से balancer चला सकते हैं।

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

13
  1. Hadoop (HDFS) संतुलन एक से दूसरे नोड से चारों ओर ब्लॉक ले जाता है यह तो हर datanode डेटा की समान राशि (एक विन्यास सीमा के भीतर) है बनाने के लिए प्रयास करने के लिए। यह HBases के डेटा इलाके को गड़बड़ कर देता है, जिसका अर्थ है कि एक विशेष क्षेत्र उस फ़ाइल की सेवा कर सकता है जो अब स्थानीय होस्ट पर नहीं है।

  2. एचबीएएस की बैलेंस_विच क्लस्टर को संतुलित करता है ताकि प्रत्येक क्षेत्ररक्षक समान क्षेत्रों (या उसके करीब) होस्ट कर सके। यह हैडोप (एचडीएफएस) बैलेंसर से अलग है।

  3. यदि आप केवल एचबीएस चला रहे हैं, तो मैं हैडोप (एचडीएफएस) बैलेंसर चलाने की सलाह नहीं देता क्योंकि यह कुछ क्षेत्रों को अपना डेटा इलाके खोने का कारण बनता है। इससे उस क्षेत्र को नेटवर्क पर जाने के लिए किसी भी अनुरोध का कारण बनता है जो उसके एचएफआईएल की सेवा कर रहा है।

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

+0

अनुमानित समय सीमा क्या है जिसके भीतर एचबीएएस नए नोड को शामिल करेगा? –

+0

नया नोड क्लस्टर में लगभग तुरंत जोड़ा जाना चाहिए। हालांकि, यह वास्तव में अनुरोधों को तब तक शुरू नहीं करेगा जब तक कि क्षेत्र इसमें स्थानांतरित नहीं हो जाते। एचबीएस बैलेंसर को 'hbase.balancer.period' द्वारा नियंत्रित किया जाता है और 5 मिनट तक डिफ़ॉल्ट होता है। आप इसे HBase खोल में भी हाथ से बुला सकते हैं। –

संबंधित मुद्दे