पर एक स्टैंडअलोन हैडोप एप्लिकेशन चलाना मेरी टीम ने इनपुट फ़ाइलों का एक समूह उपयोगी आउटपुट में बदलने के लिए हैडोप पुस्तकालयों का उपयोग करके जावा एप्लिकेशन बनाया। वर्तमान लोड को देखते हुए आने वाले वर्ष के लिए एक मल्टीकोर सर्वर ठीक काम करेगा। हमें अभी तक एक मल्टीसेवर हडोप क्लस्टर के लिए जाने की आवश्यकता नहीं है, फिर भी हमने इस परियोजना को "तैयार होने" शुरू करना चुना है।एकाधिक सीपीयू कोर
जब मैं इस ऐप को कमांड लाइन (या ग्रहण या नेटबीन में) पर चलाता हूं, तो मैं अभी तक एक मानचित्र और/या एक समय में थ्रेड को कम करने के लिए इसे मनाने में सक्षम नहीं हूं। इस तथ्य को देखते हुए कि उपकरण बहुत सीपीयू गहन है यह "एकल धागा" मेरी वर्तमान बाधा है।
नेटबीन्स प्रोफाइलर में इसे चलाने पर मुझे लगता है कि ऐप विभिन्न उद्देश्यों के लिए कई धागे शुरू करता है, लेकिन एक ही पल में केवल एक ही नक्शा/कमी चल रही है।
इनपुट डेटा में कई इनपुट फाइलें होती हैं, इसलिए मानचित्र चरण के लिए एक ही समय में हैडोप को प्रति इनपुट फ़ाइल 1 थ्रेड चलाने में सक्षम होना चाहिए।
कम से कम 2 या 4 सक्रिय धागे चलने के लिए मैं क्या करूँगा (जो इस एप्लिकेशन के अधिकांश प्रोसेसिंग समय के लिए संभव होना चाहिए)?
मुझे उम्मीद है कि यह कुछ बहुत मूर्खतापूर्ण है जिसे मैंने अनदेखा कर दिया है।
मैं सिर्फ यह पाया: https://issues.apache.org/jira/browse/MAPREDUCE-1367 यह सुविधा मैं Hadoop 0.21 में लिए देख रहा था यह इसे नियंत्रित करने के ध्वज mapreduce.local.map.tasks.maximum परिचय लागू करता है।
अभी के लिए मुझे here in this question वर्णित समाधान भी मिला है।
धन्यवाद, आपके अवलोकन के कारण मैंने स्रोत डाउनलोड किया और इसके माध्यम से खोद दिया। मैंने पाया कि स्थानीय मोड में चलते समय org.apache.hadoop.mapred.LocalJobRunner का उपयोग वास्तव में नौकरी चलाने के लिए किया जाता है। रन() विधि क्रमशः सबकुछ करता है। बिल्कुल कोई धागा नहीं। मुझे org.apache.hadoop.mapreduce.lib.map.MultithreadedMapper एक बहुत ही अजीब विशेषता मिली: एक मैपर कार्यान्वयन जो वास्तविक हडोप ढांचे के बाहर थ्रेडिंग करता है। दस्तावेज के मुताबिक केवल उपयोगी अगर आप सीपीयू बाध्य नहीं हैं। हमारा टूल सीपीयू बाध्य है इसलिए हम इसका उपयोग नहीं कर सकते हैं। –