2012-11-09 9 views

उत्तर

11

मुझे लगता है कि स्मृति खपत आपके एचडीएफएस सेटअप पर निर्भर करेगी, इसलिए एचडीएफएस के समग्र आकार के आधार पर और ब्लॉक आकार के सापेक्ष है। Hadoop NameNode wiki से:

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

https://twiki.opensciencegrid.org/bin/view/Documentation/HadoopUnderstanding से:

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

एक ही साइट की सिफारिश की गई है:

Namenode: हम कम से कम और अधिक रैम 8GB (कम से कम 2GB RAM है), अधिमानतः 16GB या सलाह देते हैं। अंगूठे का एक मोटा नियम 1 जीबी प्रति 100TB कच्चे डिस्क स्थान है; वास्तविक आवश्यकताओं लगभग 1 जीबी प्रति मिलियन वस्तुओं (फाइलें, निर्देशिकाएं, और ब्लॉक) है। सीपीयू आवश्यकताएं किसी भी आधुनिक बहु-कोर सर्वर सीपीयू हैं। आम तौर पर, नामनोड केवल आपके सीपीयू का 2-5% उपयोग करेगा। चूंकि यह विफलता का एक बिंदु है, इसलिए सबसे महत्वपूर्ण आवश्यकता उच्च प्रदर्शन हार्डवेयर की बजाय विश्वसनीय हार्डवेयर है। हम अनावश्यक बिजली की आपूर्ति और कम से कम 2 हार्ड ड्राइव के साथ एक नोड का सुझाव देते हैं।

स्मृति के उपयोग के एक अधिक विस्तृत विश्लेषण के लिए, इस लिंक की जाँच: https://issues.apache.org/jira/browse/HADOOP-1687

आप भी इस सवाल दिलचस्प लग सकते हैं: Hadoop namenode memory usage

6

NameNode करने के लिए कई तकनीकी सीमा नहीं है (एनएन) , और उनमें से किसी का सामना करना आपके स्केलेबिलिटी को सीमित करेगा।

  1. मेमोरी। एनएन प्रत्येक ब्लॉक के बारे में 150 बाइट्स का उपभोग करता है। यहां से आप गणना कर सकते हैं कि आपको अपने डेटा के लिए कितनी रैम चाहिए। अच्छी चर्चा है: Namenode file quantity limit
  2. आईओ। एनएन फाइल सिस्टम में प्रत्येक बदलाव के लिए 1 आईओ कर रहा है (जैसे ब्लॉक बनाएं, हटाएं आदि)। तो आपके स्थानीय आईओ को पर्याप्त अनुमति देनी चाहिए। यह अनुमान लगाने में मुश्किल है कि आपको कितनी जरूरत है। इस तथ्य को ध्यान में रखते हुए कि हम स्मृति द्वारा ब्लॉक की संख्या में सीमित हैं, आप इस सीमा का दावा नहीं करेंगे जब तक कि आपका क्लस्टर बहुत बड़ा न हो। यदि यह है - एसएसडी पर विचार करें।
  3. सीपीयू। Namenode सभी डेटानोड्स पर सभी ब्लॉक के स्वास्थ्य का ट्रैक रखने के काफी भार है। प्रत्येक डेटानोड प्रत्येक बार अपने सभी ब्लॉक की रिपोर्ट रिपोर्ट समय की अवधि। दोबारा, जब तक कि क्लस्टर बहुत बड़ा न हो, यह कोई समस्या नहीं होनी चाहिए।
0

उदाहरण गणना 200 नोड क्लस्टर 24TB/नोड 128MB ब्लॉक आकार प्रतिकृति कारक = 3

अंतरिक्ष कितना आवश्यक है?

ब्लॉक = 200 * 24 * 2^20/(128 * 3)

~ 12million ब्लॉक ~ 12,000 एमबी मेमोरी।

0

मुझे लगता है कि हमें नामनोड ढेर का आकार बदलने के लिए प्रत्येक नामनोड ऑब्जेक्ट और सामान्य अनुशंसाओं द्वारा नामनोड मेमोरी का सेवन करने के बीच भेद करना चाहिए।

पहले मामले (खपत), AFAIK के लिए, प्रत्येक नामनोड ऑब्जेक्ट में औसत 150 बाइट स्मृति होती है। Namenode ऑब्जेक्ट्स फ़ाइलें हैं, ब्लॉक (प्रतिकृति प्रतियों की गणना नहीं) और निर्देशिकाएं। इसलिए 3 ब्लॉक लेने वाली फ़ाइल के लिए यह 4 (1 फ़ाइल और 3 ब्लॉक) x150 बाइट्स = 600 बाइट्स है।

नामनोड के लिए अनुशंसित ढेर आकार के दूसरे मामले के लिए, आमतौर पर यह सिफारिश की जाती है कि आप प्रति 1 मिलियन ब्लॉक 1 जीबी आरक्षित करें। यदि आप इसकी गणना करते हैं (प्रति ब्लॉक 150 बाइट) आपको 150 एमबी मेमोरी खपत मिलती है। आप देख सकते हैं कि 1 जीबी प्रति 1 जीबी से बहुत कम है, लेकिन आपको फाइल आकारों, निर्देशिकाओं की संख्या को भी ध्यान में रखना चाहिए।

मुझे लगता है कि यह एक सुरक्षित पक्ष की सिफारिश है। एक अधिक सामान्य चर्चा और उदाहरण के लिए निम्नलिखित दो लिंक की जाँच करें:

Sizing NameNode Heap Memory - Cloudera

Configuring NameNode Heap Size - Hortonworks

Namenode Memory Structure Internals