2015-08-17 15 views
8

के लिए चेकप्वाइंट नोड, वहाँHadoop 2.0 नाम नोड, माध्यमिक नोड और पढ़ने अपाचे <a href="http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html" rel="noreferrer">Hadoop documentation</a> के बाद उच्च उपलब्धता

मैं पर Namenode भूमिका और जिम्मेदारियों स्पष्ट कर रहा हूँ माध्यमिक नोड & जाँच बिंदु नोड की जिम्मेदारियों को समझने में एक छोटे से भ्रम की स्थिति है :

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

लेकिन मैं माध्यमिक namenode & चेक बिंदु namenode जिम्मेदारियों को समझने में एक छोटे से भ्रम की स्थिति है।

माध्यमिक NameNode:

  • माध्यमिक NameNode fsimage विलीन हो जाती है और संपादन समय-समय पर फ़ाइलें लॉग इन करें और संपादन एक सीमा के भीतर आकार लॉग ऑन रहता है। यह आमतौर पर प्राथमिक नाम नोड की तुलना में एक अलग मशीन पर चलाया जाता है क्योंकि इसकी स्मृति आवश्यकताएं प्राथमिक नाम नोड के समान क्रम पर होती हैं।

चेक बिंदु नोड:

  • चेकप्वाइंट नोड समय-समय पर नाम स्थान की चौकियों पैदा करता है। यह सक्रिय नाम नोड से fsimage और संपादन डाउनलोड करता है, उन्हें स्थानीय रूप से विलय करता है, और नई छवि को सक्रिय नाम नोड पर वापस अपलोड करता है। चेकपॉइंट नोड आमतौर पर नाम नोड की तुलना में एक अलग मशीन पर चलता है क्योंकि इसकी स्मृति आवश्यकताएं नाम नोड के समान क्रम पर होती हैं। कॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट नोड पर बिन/hdfs namenode -checkpoint द्वारा चेकपॉइंट नोड प्रारंभ किया गया है।

ऐसा लगता माध्यमिक namenode & चेकप्वाइंट नोड के बीच कि जिम्मेदारी स्पष्ट नहीं हैं। दोनों संपादन पर काम कर रहे हैं। तो अंत में कौन संशोधित करेगा?

एक अलग नोट पर, मैंने इन अवधारणाओं को समझने में अस्पष्टता को दूर करने के लिए जिरा में दो बग बनाई हैं।

issues.apache.org/jira/browse/HDFS-8913 
issues.apache.org/jira/browse/HDFS-8914 

उत्तर

12

NameNode (प्राथमिक)

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

चेकप्वाइंट नोड

एक चेकप्वाइंट नोड NameNode की खामियों को हल करने के पेश किया गया था। परिवर्तन केवल संपादन के लिए लिखे गए हैं और रनटाइम के दौरान fsimage में विलय नहीं किए गए हैं। यदि नाम नोड थोड़ी देर के लिए चलता है तो संपादन बहुत बड़ा हो जाता है और अगली स्टार्टअप में और भी समय लगेगा क्योंकि मेटाडेटा की अंतिम स्थिति निर्धारित करने के लिए राज्य में अधिक परिवर्तन लागू किए जाने हैं।

चेकपॉइंट नोड नाम-समय से समय-समय पर fsimage और संपादन लाता है और उन्हें विलय करता है। परिणामस्वरूप राज्य को चेकपॉइंट कहा जाता है। इसके बाद नाम नोड का परिणाम अपलोड हो जाता है।

"माध्यमिक नोड" नामक एक समान प्रकार का नोड भी था, लेकिन इसमें "NameNode पर अपलोड करें" सुविधा नहीं है। तो NameNode को माध्यमिक नाम नोड से राज्य लाने की आवश्यकता है। यह भी भ्रमित कर रहा था क्योंकि नाम से पता चलता है कि यदि नाम नोड विफल रहता है तो माध्यमिक नाम नोड अनुरोध करता है जो मामला नहीं है।

बैकअप नोड

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

+0

ऐसा लगता है जैसे अपाचे ने सुविधा को सही तरीके से दस्तावेज नहीं किया है।> * थोकॉमिनेशन प्रोटोकॉल सभी एचडीएफएस संचार प्रोटोकॉल टीसीपी/आईपी प्रोटोकॉल के शीर्ष पर स्तरित हैं। एक ग्राहक नाम नोड मशीन पर कॉन्फ़िगर करने योग्य टीसीपी पोर्ट से कनेक्शन स्थापित करता है। यह नाम नोड के साथ क्लाइंटप्रोटोकॉल से बात करता है। DataNodes DataNode प्रोटोकॉल का उपयोग कर NameNode से बात करते हैं। एक रिमोट प्रक्रिया कॉल (आरपीसी) अबास्ट्रक्शन क्लाइंट प्रोटोकॉल और डेटा नोड प्रोटोकॉल दोनों को लपेटता है। डिज़ाइन द्वारा, नाम नोड कभी भी आरपीसी शुरू नहीं करता है। इसके बजाए, यह केवल डेटा नोड्स या ग्राहकों द्वारा जारी आरपीसी अनुरोधों का जवाब देता है। –

+0

जेरा में दो बग्स बनाए गए: https://issues.apache.org/jira/browse/HDFS-8914 और https://issues.apache.org/jira/browse/HDFS-8913। प्रलेखन में बेहतर सामग्री प्राप्त करने की उम्मीद है –

+0

सामग्री http://morrisjobke.de/2013/12/11/Hadoop-NameNode-and-siblings/ से प्राप्त की गई सामग्री – Andrew

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