स्टोर करने के लिए डेटानोड का चयन कैसे करता है जैसा कि शीर्षक इंगित करता है, जब कोई क्लाइंट एचडीएफएस में फ़ाइल लिखने का अनुरोध करता है, तो एचडीएफएस या नाम नोड फ़ाइल को स्टोर करने के लिए कौन सा डाटानोड चुनता है? क्या एचडीएफएस एक ही नोड में एक ही नोड या कुछ नोड में इस फाइल के सभी ब्लॉक को स्टोर करने का प्रयास करता है यदि यह बहुत बड़ा है? क्या एचडीएफ फाइलों को किसी निश्चित डेटानोड में स्टोर करने के लिए एप्लिकेशन के लिए कोई एपीआई प्रदान करता है?एचडीएफएस
एचडीएफएस
उत्तर
डेटानोड चुनने के लिए कोड ReplicationTargetChooser.chooseTarget()
पर है।
टिप्पणी का कहना है कि:
प्रतिकृति नियुक्ति रणनीति यह है कि अगर लेखक एक datanode पर है, 1 प्रतिकृति स्थानीय मशीन पर रखा गया है, अन्यथा एक यादृच्छिक datanode। दूसरी प्रतिकृति को डेटनोड पर रखा गया है जो पर एक अलग रैक पर है। तीसरी प्रतिकृति एक डेटानोड पर रखी गई है जो पर पहली प्रतिकृति के समान रैक पर है।
यह फ़ाइल के डेटाटोड में फ़ाइल को स्टोर करने के लिए एप्लिकेशन के लिए कोई एपीआई प्रदान नहीं करता है।
एचडीएफएस या नाम नोड फ़ाइल को स्टोर करने के लिए कौन सा डाटानोड चुनता है?
एचडीएफएस में BlockPlacementPolicyDefault है, अधिक जानकारी के लिए एपीआई दस्तावेज देखें। एक कस्टम व्यवहार के लिए BlockPlacementPolicy का विस्तार करना संभव होना चाहिए।
क्या एचडीएफ फाइलों को एक निश्चित डेटानोड में फ़ाइल को स्टोर करने के लिए किसी भी एपीआई प्रदान करता है जैसा वह पसंद करता है?
नियुक्ति व्यवहार किसी विशेष डेटानोड के लिए विशिष्ट नहीं होना चाहिए। यही कारण है कि एचडीएफएस विफलता और स्केलेबल के लिए लचीला बनाता है।
अब Hadoop-385 पैच के साथ, हम ब्लॉक प्लेसमेंट नीति चुन सकते हैं, ताकि एक ही नोड में फ़ाइल के सभी ब्लॉक (और इसी तरह प्रतिकृति नोड्स के लिए) को स्थानांतरित किया जा सके। इस विषय के बारे में blog पढ़ें - टिप्पणी अनुभाग देखें।
किसी चार्ट पसंद हैं, तो यहाँ एक तस्वीर (source) है। पहली प्रतिकृति स्थानीय मशीन में संग्रहीत होती है और अन्य दो प्रतिकृतियां अन्य रैक पर बनाई जाती हैं और इसी तरह।
यदि कोई प्रतिकृति विफल हो जाती है, तो डेटा अन्य प्रतिकृति से संग्रहीत किया जाता है। हर प्रतिकृति में असफल होने की संभावनाएं आप सोते समय अपने सिर पर प्रशंसक गिरने की तरह हैं: पी यानी इसके लिए बहुत कम मौका है।
आप देख सकते हैं कि जब namenode का निर्देश डाटा स्टोर करने datanode:
मेरा हैडॉप संस्करण 0.20.2 – gaoxinbo
हैडूप 2+ के लिए प्रवीण श्रीपति से –