2012-07-06 14 views
5

यह एक मूर्ख सवाल के रूप में प्रतीत हो सकता है लेकिन हैडोप में मान लीजिए कि एक्स (आमतौर पर 64 या 128 एमबी) है और स्थानीय फाइलसाइज वाई है (जहां वाई एक्स से कम है)। अब जब मैं फाइल वाई को एचडीएफएस में कॉपी करता हूं तो यह उपभोग करेगा एक ब्लॉक या हडूप छोटे आकार के ब्लॉक बना देगा?हाडोप ब्लॉक आकार और फ़ाइल आकार समस्या?

उत्तर

18

एक ब्लॉक हडोप द्वारा खाया जाता है। इसका मतलब यह नहीं है कि भंडारण क्षमता बराबर तरीके से खाई जाएगी।

उत्पादन वेब से HDFS ब्राउज़ करते समय इस तरह दिखता है:

filename1 file 48.11 KB 3 128 MB 2012-04-24 18:36  
filename2 file 533.24 KB 3 128 MB 2012-04-24 18:36  
filename3 file 303.65 KB 3 128 MB 2012-04-24 18:37 

आप देखते हैं कि प्रत्येक फ़ाइल का आकार ब्लॉक आकार जो 128 एमबी है की तुलना में कम है। ये फ़ाइलें केबी में हैं। एचडीएफएस क्षमता वास्तविक फ़ाइल आकार के आधार पर उपभोग की जाती है लेकिन प्रति फ़ाइल एक ब्लॉक खपत की जाती है।

एचडीएफएस की क्षमता पर निर्भर सीमित संख्या में ब्लॉक उपलब्ध हैं। आप ब्लॉक को बर्बाद कर रहे हैं क्योंकि आप सभी वास्तविक स्टोरेज क्षमता का उपयोग करने से पहले उनमें से बाहर निकल जाएंगे। याद रखें कि यूनिक्स फिलसिस्टम में ब्लॉजिज की अवधारणा भी है लेकिन 512 बाइट्स के आसपास एक बहुत छोटी संख्या है। यह अवधारणा एचडीएफएस में उलटा है जहां ब्लॉक आकार 64-128 एमबी के आसपास बड़ा रखा गया है।

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

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

संदर्भ के लिए निम्नलिखित पढ़ें:

  1. http://www.cloudera.com/blog/2009/02/the-small-files-problem/
  2. http://www.ibm.com/developerworks/web/library/wa-introhdfs/
  3. ओह! SO: Small files and HDFS blocks
पर एक चर्चा है
संबंधित मुद्दे