2012-12-06 23 views
14

मेरी समझ पंक्तियों से एचबीएस टेबल में डाला गया है और विभिन्न क्षेत्र सर्वर में क्षेत्रों के रूप में संग्रहीत किया जा रहा है। इसलिए, क्षेत्र सर्वर डेटाडैटनोड की भूमिका, हबेस-हडूप एकीकरण में क्षेत्ररक्षक

इसी प्रकार हैडोप के संदर्भ में, डेटा हैडूप क्लस्टर में मौजूद डेटा नोड्स में संग्रहीत किया जाता है।

कहना चलो मैं HBase 0.90.6 Hadoop 1.1.1 के शीर्ष पर कॉन्फ़िगर के रूप में

2 नोड्स इस प्रकार है -, स्वामी और गुलाम

  1. के रूप में मास्टर नोड में कार्य करता है
    • Hadoop - Namenode, माध्यमिक Namenode, नौकरी ट्रैकर, डेटा नोड, कार्य ट्रैकर
    • एचबीएएस - मास्टर, क्षेत्र सर्वर और ज़ूकीपर।
  2. दास नोड के रूप में कार्य करता है,
    • Hadoop datanode और कार्य पर नजर
    • HBase क्षेत्र सर्वर

मेरे बयान करता है, तो तालिका डेटा क्षेत्र सर्वर में संग्रहित है के आधार पर; तो डेटा नोड्स और क्षेत्र सर्वर की भूमिका क्या है?

उत्तर

35

डेटा नोड्स स्टोर डेटा। क्षेत्र सर्वर (ओं) अनिवार्य रूप से बफर I/O संचालन; डेटा स्थायी रूप से एचडीएफएस (यानी, डेटा नोड्स) पर संग्रहीत किया जाता है। मुझे नहीं लगता कि आपके 'मास्टर' नोड पर क्षेत्र सर्वर डालना एक अच्छा विचार है।

यहाँ कैसे क्षेत्रों प्रबंधित कर रहे हैं की एक सरलीकृत तस्वीर है:

आप 3 की प्रतिकृति कारक (प्रत्येक HDFS ब्लॉक 3 अलग DataNodes में बनाई जाए) के साथ एक क्लस्टर HDFS (NameNode + DataNodes) चल रहा है।

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

क्या होगा यदि क्षेत्र सर्वर क्रैश हो या क्षेत्रमास्टर ने क्षेत्र को किसी अन्य क्षेत्र सर्वर (समूह को संतुलित रखने के लिए) को फिर से सौंपने का निर्णय लिया हो? नए क्षेत्र सर्वर को पहले रिमोट रीड करने के लिए मजबूर किया जाएगा, लेकिन जैसे ही कॉम्पैक्शन किया जाता है (डेटा में परिवर्तन लॉग विलय) - नई क्षेत्र को नए क्षेत्र सर्वर द्वारा एचडीएफएस में लिखा जाएगा, और स्थानीय प्रति क्षेत्रसेवर पर बनाई जाएगी (दोबारा, क्योंकि डेटा नोड और क्षेत्र सर्वर एक ही सर्वर पर चलता है)।

नोट: क्षेत्रसेवर दुर्घटना के मामले में, पहले इसे निर्दिष्ट क्षेत्रों को एकाधिक क्षेत्रसेवरों को फिर से सौंप दिया जाएगा।

अच्छा लिखा है:

  • टॉम सफेद, "Hadoop, निश्चित गाइड" HDFS वास्तुकला का अच्छा व्याख्या है।दुर्भाग्यवश मैंने मूल Google GFS पेपर नहीं पढ़ा, इसलिए मैं यह नहीं बता सकता कि इसका पालन करना आसान है या नहीं।

  • Google BigTable लेख। एचबीएएस Google बिगटेबल का कार्यान्वयन है, और मैंने पाया कि इस आलेख में आर्किटेक्चर विवरण का पालन करना सबसे आसान है। - बिगटेबल

  • क्षेत्र - गोली
  • RegionServer

    • HBase:

    यहाँ गूगल बिगटेबल और HBase कार्यान्वयन (लार्स जॉर्ज से, "HBase, निश्चित गाइड") के बीच नामकरण मतभेद है - टैबलेट सर्वर

  • फ्लश - माइनर कॉम्पैक्शन
  • माइनर कॉम्पैक्शन - विलय कॉम्पैक्शन
  • मेजर संघनन - प्रमुख संघनन
  • आगे लिखें लॉग इन करें - कमिट लोग इन
  • HDFS - GFS
  • Hadoop MapReduce - MapReduce
  • MemStore - memtable
  • HFile - SSTable
  • Zookeeper - चब्बी
+0

मैं hdfs पर बनाई गई HBase तालिकाओं को भी देख सकता था और लगता है जैसे भाग संग्रहित होते हैं। लिंक http://hbase.apache.org/book/regionserver.arch.html कहता है कि "HRegionServer क्षेत्रसेवर कार्यान्वयन है। यह क्षेत्रों की सेवा और प्रबंधन के लिए ज़िम्मेदार है। वितरित क्लस्टर में, एक क्षेत्र सर्वर 9.9 पर चलता है .2, "डेटा नोड"। " लेकिन फिर भी, मुझे क्षेत्र सर्वर की भूमिका को समझने में कठिनाइयां हैं। मैं किस तरह के I/O संचालन और उन क्षेत्रों के लिए अलग-अलग क्षेत्रों के सर्वरों की आवश्यकता क्यों है? – learninghuman

+6

क्षेत्र पंक्तियों की कुछ सीमाओं में डेटा है। कहें, आप एचबीज़ टेबल से एक पंक्ति प्राप्त करना चाहते हैं। आप अनुरोध क्षेत्रसेवर प्राप्त करेंगे जो आपकी पंक्ति वाले क्षेत्र के लिए ज़िम्मेदार है। क्षेत्रसेवर या तो पहले से ही आपकी पंक्ति मेमोरी (कैशिंग) में रखेगा, या इसे एचडीएफएस (डेटा नोड्स) से पढ़ने की जरूरत है। यदि आपका क्षेत्र सर्वर संबंधित क्षेत्र वाले डेटा नोड पर चलता है तो यह एक स्थानीय फाइल सिस्टम पढ़ा जाता है। अन्यथा यह एक दूरस्थ पढ़ा है, जो धीमा है। यही कारण है कि आप डेटासोड - डेटा इलाके सिद्धांत पर क्षेत्रसेवर रखना चाहते हैं। --- एचडीएफएस/डेटा नोड्स के लिए हडोप किताबें देखें (कहना, hadoopbook.com) –

+0

स्पष्टीकरण के लिए बहुत बहुत धन्यवाद ... लेकिन प्रश्न अभी भी पॉपअप 1. क्षेत्र सर्वर और डेटा नोड्स के बीच मैपिंग कैसे किया जाता है? यानी मान लें कि मेरे पास 3 मशीन सर्वर आरएस 1 उसी मशीन पर डीएन 1, डीएस 2 पर आरएस 2 और डीएस 3 पर आरएस 3 है। डीएन 1 पर रहने के लिए आरएस 1 की सीमा क्या निर्धारित करता है? मेरी समझ यह है कि आरएस 1 का क्षेत्र डीएन 2 पर भी जा सकता है। फिर इलाके कैसे हासिल किया जाता है? 2. क्या क्षेत्र सर्वर और डेटा नोड्स की समान संख्या होनी चाहिए? – learninghuman

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

  • कोई संबंधित समस्या नहीं^_^