मैंने जीसी ओवरहेड सीमा पार होने के कारण मरने वाले हडोप डाटानोड प्रक्रियाओं से संबंधित अधिक जानकारी खोजी है और नहीं, इसलिए मैंने सोचा कि मैं एक प्रश्न पोस्ट करूंगा।"जीसी ओवरहेड सीमा पार हो गई" हैडोप .20 डेटानोड
हम एक परीक्षण चला रहे हैं जहां हमें यह पुष्टि करने की आवश्यकता है कि हमारे हैडोप क्लस्टर पर ~ 3 मिलियन फ़ाइलों को संग्रहीत किया जा सकता है (वर्तमान में एक 4 नोड क्लस्टर)। हम 64 बिट जेवीएम का उपयोग कर रहे हैं और हमने नामनोड को 8 जी आवंटित किया है। हालांकि, जैसा कि मेरा टेस्ट प्रोग्राम डीएफएस को और फाइलें लिखता है, डेटनोड इस त्रुटि से मरना शुरू कर देते हैं: थ्रेड में अपवाद "डेटा नोड: [/ var/hadoop/data/hadoop/data]" java.lang.OutOfMemoryError: जीसी ओवरहेड सीमा
मैंने कुछ विकल्पों (समांतर जीसी?) के बारे में कुछ पोस्ट देखी हैं, मुझे लगता है कि हैडूप-env.sh में सेट किया जा सकता है लेकिन मुझे वाक्यविन्यास का भी यकीन नहीं है और मैं एक नौसिखिया हूं, इसलिए मैं काफी नहीं किया कि यह कैसे किया जाता है। यहां किसी भी मदद के लिए धन्यवाद!
लोगों के लिए बस यहां एक अपडेट: डीएफएस में @ 1.5 मिलियन फाइलें, जब मेरा 64 बिट जेवीएम 1 जी (डिफ़ॉल्ट) था तो डेटा नोड्स इस त्रुटि से मरना शुरू कर दिया। जब मैंने इसे 2 जी तक बढ़ा दिया, तब तक यह दूर चला गया जब तक कि मुझे लगभग 3 मिलियन फाइलें नहीं मिलीं। मैं सोच रहा हूं कि इस तरह की मेमोरी ब्लोट एक ज्ञात समस्या है या नहीं और यदि हां, तो मैं इसे ठीक करने की क्या अन्य सिफारिशें कर सकता हूं? – hatrickpatrick
जैसे तेजस पाटिल ने उल्लेख किया, डिफ़ॉल्ट ब्लॉक आकार 64 एमबी है। हर बार जब भी यह चलता है, प्रत्येक फ़ाइल के लिए हैडोप मेटाडेटा लोड करता है। आपके पास जितनी अधिक फ़ाइलें हैं, उतनी ही मेमोरी होगी। यदि ये फ़ाइलें डिफ़ॉल्ट ब्लॉक आकार से बहुत छोटी हैं और आपके पास ऐसा करने का विकल्प है, तो फ़ाइलों को एचडीएफएस में स्टोर करने के लिए बड़ी फ़ाइलों में गठबंधन करने का प्रयास करें। बस एक विचार :) – sufinawaz