2011-10-03 20 views
14

जब मैं एचडीएफएस में एक फाइल अपलोड कर रहा हूं, अगर मैं प्रतिकृति कारक को 1 पर सेट करता हूं तो फ़ाइल एक ही मशीन पर रहने के लिए विभाजित होती है या विभाजन नेटवर्क पर कई मशीनों को वितरित किया जाएगा?एचडीएफएस प्रतिकृति कारक

hadoop fs -D dfs.replication=1 -copyFromLocal file.txt /user/ablimit 

उत्तर

11
के अनुसार

Hadoop : Definitive Guide

Hadoop के डिफ़ॉल्ट रणनीति ग्राहक के रूप में एक ही नोड पर पहले प्रतिकृति जगह है ( क्लस्टर के बाहर चल रहे ग्राहकों के लिए, एक नोड यादृच्छिक पर चुना जाता है, हालांकि सिस्टम उन नोड्स को न लेने का प्रयास करता है जो बहुत पूर्ण या बहुत व्यस्त हैं)। दूसरी प्रतिकृति को पर यादृच्छिक रूप से चुने गए पहले (ऑफ-रैक) से अलग रैक पर रखा गया है। तीसरी प्रतिकृति पर दूसरी रैक पर एक ही रैक पर रखी गई है, लेकिन यादृच्छिक रूप से चुने गए एक अलग नोड पर। आगे की प्रतिकृतियां क्लस्टर पर यादृच्छिक नोड्स पर रखी गई हैं, हालांकि सिस्टम को एक ही रैक पर बहुत अधिक प्रतिकृतियां रखने से रोकने का प्रयास करता है।

यह तर्क समझ में आता है क्योंकि यह विभिन्न नोड्स के बीच नेटवर्क चाप को कम करता है। लेकिन, पुस्तक 200 9 में प्रकाशित हुई थी और हडोप ढांचे में बहुत सारे बदलाव हुए थे।

मुझे लगता है कि यह इस बात पर निर्भर करता है कि क्लाइंट हैडोप नोड के समान है या नहीं। यदि ग्राहक एक हडोप नोड है तो सभी विभाजन एक ही नोड पर होंगे। क्लस्टर में एकाधिक नोड्स होने के बावजूद यह किसी भी बेहतर पढ़ने/लिखने के माध्यम से प्रदान नहीं करता है। यदि ग्राहक हडोप नोड के समान नहीं है, तो नोड प्रत्येक विभाजन के लिए यादृच्छिक रूप से चुना जाता है, इसलिए विभाजन क्लस्टर में नोड्स में फैले होते हैं। अब, यह बेहतर पढ़ने/लिखने के माध्यम से प्रदान करता है।

एकाधिक नोड्स को लिखने का एक लाभ यह है कि यहां तक ​​कि यदि कोई नोड नीचे चला जाता है, तो कुछ विभाजन नीचे हो सकते हैं, लेकिन कम से कम कुछ डेटा शेष हिस्सों से किसी भी तरह से पुनर्प्राप्त किए जा सकते हैं।

+0

मुझे लगता है कि आप अंतिम बयान सही नहीं है। यदि नोड में से एक नीचे है और इसमें इनपुट डेटा के ब्लॉक हैं, तो नाम नोड फ़ाइल को पुनर्प्राप्त करने के लिए कोई रास्ता नहीं है या शेष ब्लॉक (1) प्रतिकृति कारक को मानने का कोई तरीका नहीं है –

+0

# ब्रेन तूफान, आप बिल्कुल सही हैं। –

+0

ब्लॉक स्थान चुनने की रणनीति को हैडूप दस्तावेज़ों में अलग-अलग दस्तावेज किया गया है, कृपया https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Replica_Placement:_The_First_Baby_Steps जांचें। –

1

यदि आप प्रतिकृति 1 सेट करते हैं, तो फ़ाइल केवल क्लाइंट नोड पर मौजूद होगी, यह वह नोड है जहां से आप फ़ाइल अपलोड कर रहे हैं।

+1

यह सच है _iff_ क्लाइंट नोड भी डेटा नोड सेवा चलाता है। –

+0

क्या यह सच है भले ही क्लाइंट-स्थानीय डेटानोड भरा हुआ हो? यानी एक अलग डीएन का उपयोग करने के विरोध में कॉपी विफल हो जाएगी? – Wheezil

0
  • यदि आपका क्लस्टर एकल नोड है तो जब आप फ़ाइल अपलोड करते हैं तो इसे ब्लॉकइज़ के अनुसार खाली किया जाएगा और यह एकल मशीन में रहता है।
  • यदि आपका क्लस्टर मल्टी नोड है तो जब आप एक फ़ाइल अपलोड करते हैं तो इसे ब्लॉकइज़ के अनुसार खाली कर दिया जाएगा और इसे आपके क्लस्टर में पाइपलाइन के माध्यम से अलग-अलग डेटानोड में वितरित किया जाएगा और नाम नोड यह तय करेगा कि क्लस्टर में डेटा कहाँ स्थानांतरित किया जाना चाहिए।

एचडीएफएस प्रतिकृति कारक डेटा की प्रतिलिपि बनाने के लिए उपयोग किया जाता है (यानी) यदि आपका प्रतिकृति कारक 2 है तो आपके द्वारा एचडीएफएस पर अपलोड किए जाने वाले सभी डेटा की प्रतिलिपि होगी।

+0

यदि आप hdfs-site में प्रतिकृति कारक मान बदलते हैं तो क्या होगा।फ़ाइल को एचडीएफएस पर अपलोड करने के बाद xml - क्या सिस्टम स्वचालित रूप से इसे दोहराएगा या आपको एक hdfs balancer कमांड निष्पादित करने की आवश्यकता होगी? –

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