2011-09-19 19 views
5

मैं हैडोप 0.20 पर्यावरण में चलाने के लिए मानचित्र कार्यों की संख्या सेट करने की कोशिश कर रहा हूं।हैडऑप 0.20 में मानचित्र कार्यों की संख्या कैसे सेट करें?

मैं पुरानी एपीआई का उपयोग कर रहा हूं।

विकल्प यहां मैं अब तक की कोशिश की है इस प्रकार हैं:

conf.set("mapred.tasktracker.map.tasks.maximum", "5"); 
    conf.set("mapred.map.tasks", "10"); 
    conf.set("mapred.map.tasksperslot", "5"); 
    conf.set("mapred.tasktracker.map", "5"); 
    conf.set("mapred.map.parallel.copies", "5"); 
पर उन सभी के साथ

, नक्शे parallely में चल रहे कार्यों की संख्या बनी हुई है 2.

करने के लिए सेट करने के लिए उचित विकल्प क्या हैं 5 तक समानांतर चल रहे मैपर की संख्या प्राप्त करें?

उत्तर

9

TaskTracker.java

maxCurrentMapTasks = conf.getInt में ("mapred.tasktracker.map.tasks.maximum", 2);

"Hadoop : The Definitive Guide" के अनुसार। तो, ग्राहक पक्ष पर संपत्ति सेट करना कोई उपयोग नहीं है। आपको कॉन्फ़िगरेशन फ़ाइल में इसे सेट करने की आवश्यकता है।

ध्यान रखें कि क्लाइंट कॉन्फ़िगरेशन में सेट होने पर कुछ गुणों का कोई प्रभाव नहीं पड़ता है। उदाहरण के लिए, यदि आपके जॉब सबमिशन में आपने के साथ mapred.tasktracker.map.tasks.maximum सेट किया है, तो उम्मीद है कि यह आपके काम को चलाने वाले टास्कट्रैकर्स के लिए टास्क स्लॉट की संख्या को बदल देगा, तो आप निराश होंगे, क्योंकि यह संपत्ति केवल टास्कट्रैकर की mapred-site.html फ़ाइल में सेट होने पर केवल सम्मानित किया जाता है। आम तौर पर, आप घटक कह सकते हैं जहां एक संपत्ति को इसके नाम से सेट किया जाना चाहिए, इसलिए मैपर्ड.task.tracker.map.tasks.maximum mapred.tasktracker के साथ शुरू होता है आपको यह संकेत मिलता है कि यह केवल सेट हो सकता है टास्कट्रैक डेमन के लिए। यह कठिन और तेज़ नियम नहीं है, इसलिए में कुछ मामलों में आपको परीक्षण और त्रुटि का सहारा लेना पड़ सकता है, या यहां तक ​​कि स्रोत को पढ़ना भी पड़ सकता है।

+0

क्या आप ईएमआर के लिए उचित कॉन्फ़िगरेशन स्क्रिप्ट प्रदान करने में सक्षम होंगे? –

+0

ईएमआर के लिए कॉन्फ़िगरेशन स्क्रिप्ट द्वारा आपका क्या मतलब है? अधिक जानकारी चाहिए। –

+1

लोचदार मैप्रिडस नौकरी शुरू करते समय, हडूप शुरू होने से पहले बूटस्ट्रैप क्रियाओं को चलाने की संभावना है। मेरा मानना ​​है कि इसका इस्तेमाल मैपर की संख्या निर्धारित करने के लिए किया जा सकता है, लेकिन मैं जानता हूं कि कैसे –

0

जवाब अप-टू-डेट Hadoop एपीआई में परिवर्तन के साथ, मैं पदावनत संपत्तियों के लिए नई प्रतिस्थापन सूचीबद्ध किया है रखने के लिए।

mapred.tasktracker.map.tasks.maximum => mapreduce.tasktracker.map.tasks.maximum 
mapred.map.tasks => mapreduce.job.maps 

बहिष्कृत API & नई एपीआई

के लिए इस link पर एक नज़र डालें लेकिन मैं नौकरी के बेहतर प्रदर्शन के लिए ढांचे में ही करने के लिए नक्शे कार्यों निर्णय की संख्या रखना पसंद करते हैं।

संबंधित मुद्दे