2012-04-29 21 views
5

मेरे पास "केवल नक्शा" है (चरण कम नहीं) प्रोग्राम। इनपुट फ़ाइल का आकार 7 मैप कार्यों को बनाने के लिए काफी बड़ा है और मैंने सत्यापित किया है कि आउटपुट आउटपुट (part-000 से part006) देखकर। अब, मेरे क्लस्टर में 8 कोर और 8 जीबी मेमोरी के साथ 8 नोड्स हैं और हेड नोड पर होस्ट की गई साझा फाइल सिस्टम है।बहु-कोर 8 नोड क्लस्टर में हैडोप मानचित्र कार्यों को शेड्यूल कैसे करें?

मेरा प्रश्न है कि मैं केवल 7 नोड में सभी 7 मानचित्र कार्यों को चलाने या 7 अलग-अलग गुलाम नोड्स (1 कार्य प्रति नोड) में 7 मानचित्र कार्यों को चलाने के बीच चुन सकता हूं। अगर मैं ऐसा कर सकता हूं, तो मेरे कोड और कॉन्फ़िगरेशन फ़ाइल में क्या परिवर्तन की आवश्यकता है।

मैंने पैरामीटर को "mapred.tasktracker.map.tasks.maximum" को केवल 1 और 7 में पैरामीटर सेट करने का प्रयास किया लेकिन मुझे कोई सराहनीय समय अंतर नहीं मिला। मेरी कॉन्फ़िगरेशन फ़ाइल में इसे 1.

उत्तर

4

"mapred.tasktracker.map.tasks.maximum" प्रत्येक नोड पर लॉन्च किए जाने वाले मानचित्र कार्यों की संख्या से संबंधित है, न कि प्रत्येक मानचित्र कार्य के लिए उपयोग किए जाने वाले नोड्स की संख्या। हडोप आर्किटेक्चर में, प्रत्येक नोड (दास) और 1 नौकरी ट्रैकर के लिए एक मास्टर नोड (मास्टर) पर 1 टास्कट्रैकर होता है। इसलिए यदि आप mapred.tasktracker.map.tasks.maximum संपत्ति सेट करते हैं, तो यह प्रति नोड को निष्पादित करने के लिए केवल नक्शा कार्यों की संख्या को बदल देगा। "mapred.tasktracker.map.tasks.maximum" की सीमा, 1/2*cores/node से 2*cores/node

मानचित्र कार्यों के समग्र चाहते हैं कि setNumMapTasks(int)

1

अब का उपयोग कर सेट किया जाना चाहिए की संख्या के लिए है मेरी क्लस्टर 8 कोर के साथ 8 नोड्स एक और स्मृति के 8 जीबी है और साझा नोड पर होस्ट की गई साझा फाइल सिस्टम।

जब आप कहते हैं कि एक साझा फाइल सिस्टम आप मतलब है डेटा HDFS पर होस्ट की है, या फाइल सिस्टम जैसे कुछ एनएफएस पर प्रत्येक नोड पर घुड़सवार एक सिर नोड की मेजबानी की,? मेरा अनुमान है कि आप एचडीएफएस का मतलब रखते हैं, लेकिन यदि आप एनएफएस या कुछ इसी तरह का उपयोग कर रहे हैं तो आपको एचडीएफएस के साथ उच्च थ्रूपुट देखने की उम्मीद करनी चाहिए (आप प्रसंस्करण कोड को डेटा को प्रोसेसिंग मशीन पर ले जाने के बजाय डेटा पर ले जाना चाहते हैं)

आपकी इनपुट फ़ाइल कितनी बड़ी है और इसका विभाजन आकार, फ़ाइल प्रारूप (टेक्स्ट, अनुक्रम इत्यादि), प्रतिकृति कारक और संपीड़न मेथॉफ़ क्या है?

उपरोक्त प्रश्नों के उत्तर के आधार पर, आपके 8x8 सेटअप के साथ, यदि आप नक्शा विभाजित आकार को कम करते हैं, और प्रतिकृति कारक को कम करते हैं तो आप बेहतर थ्रूपुट प्राप्त कर सकते हैं।

1

यदि संभव हो तो आपको 7 अलग-अलग नोड्स पर निश्चित रूप से 7 मानचित्र कार्य चलाना चाहिए। MapReduce का पूरा लाभ आपके कंप्यूटिंग को समानांतर करने में सक्षम होना है ताकि प्रत्येक कार्य जितना संभव हो उतना कुशलता से चलता है। यदि आप एक नोड पर 7 मानचित्र कार्यों को चलाते हैं, तो प्रत्येक कार्य उसी एकल नोड पर उसी संसाधन (रैम, सीपीयू, आईओ) के लिए प्रतिस्पर्धा करेगा।

mapred.tasktracker.map.tasks.maximum के लिए एक मानक स्थापित करने कोर ताकि आप इसके अतिरिक्त 8.

लिए अपनी सेटिंग को परिवर्तित कर सकता है, यदि आप एक नक्शा-केवल काम है, तो आप मानचित्रकारों की संख्या निर्धारित करने के लिए एक अच्छा कारण चाहता हूँ प्रति एक है कुछ संख्या के लिए। नक्शा कार्यों की संख्या निर्धारित करने के लिए कितने नक्शे चलने के लिए जॉबट्रैकर के लिए सिर्फ एक "संकेत" है, लेकिन आखिरकार जॉबट्रैकर द्वारा तय किया जाता है कि डीएफएस आपके इनपुट डेटा को कैसे संग्रहीत कर रहा है। This wiki has more details.

हालांकि, आप कुछ मामलों में कार्यों को कम करने की संख्या को नियंत्रित करना चाहते हैं। उदाहरण के लिए, अगर मैं क्रमबद्ध संख्याओं की एक सूची चाहता था तो मैं यह सुनिश्चित करना चाहता हूं कि मेरा सभी डेटा एक एकल reducer के माध्यम से पारित हो।