मैं 1,5 टीबी डेटा से अधिक हडोप नौकरी चला रहा हूं जिसमें बहुत पैटर्न मिलान हो रहा है। मेरे पास 16 जीबी रैम के साथ कई मशीनें हैं, और इस डेटा के साथ मैं हमेशा OutOfMemoryException
प्राप्त करता हूं (मैं हाइव का उपयोग कर रहा हूं)।Hadoop चलाते समय OutOfMemoryException से कैसे बचें?
मैं जानना चाहता हूं कि HADOOP_HEAPSIZE
फ़ाइल hadoop-env.sh
में विकल्प को कैसे सेट करें, तो मेरा काम असफल नहीं होगा। क्या यह संभव है, इस विकल्प को सेट करने के लिए मेरी नौकरियां असफल नहीं होंगी?
जब मैं HADOOP_HEAPSIZE
से 1,5 जीबी सेट करता हूं और क्वेरी से मिलान पैटर्न के आधे हिस्से को हटा देता हूं, तो नौकरी सफलतापूर्वक चलती है। तो यह विकल्प क्या है, अगर यह नौकरी विफलताओं से बचने में मदद नहीं करता है?
मुझे इष्टतम सेटअप के साथ और अधिक प्रयोग करने का मौका है, लेकिन चूंकि उन नौकरियों को चलाने के लिए 10 घंटे लगते हैं, मैं आपकी सलाह मांग रहा हूं।
आपको क्या लगता है 'HADOOP_HEAPSIZE' * मदद नहीं करता है * विफलता से बचने के? आपके अनुभव से लगता है कि यह करता है। उन कारणों के लिए जिन्हें केवल आपके डेटा/नौकरी की जांच करने के लिए जाना जा सकता है, आपकी स्थिति कम से कम इस बड़े आकार के ढेर आकार के लिए कहती है। क्या आप अपनी नौकरी को दोबारा कर सकते हैं ताकि उसे इतनी बड़ी ढेर की आवश्यकता न हो? –
मैंने अपना काम संशोधित किया है, इसलिए यह इतनी बड़ी ढेर का उपयोग नहीं करता है, लेकिन इस समय मैंने 'HADOOP_HEAPSIZE' बदल दिया है। और मुझे इस शगने का असली नतीजा नहीं दिख रहा है, मेरा मतलब है: क्यों ढेर को छोटे से सेट करें: राशि_of_my_RAM/number_of_mappers_or_reducers? – wlk