2015-05-29 2 views
11

मैं एक मानचित्र को हडोप पर प्रोग्राम को कम करने की कोशिश कर रहा हूं।हैडोप मैपर "अनुप्रयोग प्रबंधक द्वारा मारे गए कंटेनर" की वजह से विफल रहा है

जब मैं हैडोप एकल नोड क्लस्टर में अपना काम सबमिट करता हूं। नौकरी बनाया जा रहा है, लेकिन संदेश के साथ

"कंटेनर ApplicationMaster ने मार डाला"

प्रयुक्त इनपुट आकार 10 MB की है में चूक गए।

जब मैंने इनपुट फ़ाइल 400 KB की एक ही स्क्रिप्ट का उपयोग किया, तो यह सफल हो गया। लेकिन 10 एमबी आकार की इनपुट फ़ाइल में असफल रहा।

मेरे टर्मिनल में प्रदर्शित होने वाला पूरा लॉग निम्नानुसार है।

15/05/29 09:52:16 WARN util.NativeCodeLoader: Unable to `load native- hadoop library for your platform... using builtin-java classes  where applicable 
Submitting job on the cluster... 
15/05/29 09:52:17 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032 
15/05/29 09:52:18 INFO input.FileInputFormat: Total input paths to process : 1 
15/05/29 09:52:18 INFO mapreduce.JobSubmitter: number of splits:1 
15/05/29 09:52:19 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1432910768528_0001 
15/05/29 09:52:19 INFO impl.YarnClientImpl: Submitted application application_1432910768528_0001 
15/05/29 09:52:19 INFO mapreduce.Job: The url to track the job: http://localhost:8088/proxy/application_1432910768528_0001/ 
15/05/29 09:52:19 INFO mapreduce.Job: Running job: job_1432910768528_0001 
15/05/29 09:52:29 INFO mapreduce.Job: Job job_1432910768528_0001 running in uber mode : false 
15/05/29 09:52:29 INFO mapreduce.Job: map 0% reduce 0% 
15/05/29 09:52:41 INFO mapreduce.Job: map 100% reduce 0% 
15/05/29 10:03:01 INFO mapreduce.Job: map 0% reduce 0% 
15/05/29 10:03:01 INFO mapreduce.Job: Task Id : attempt_1432910768528_0001_m_000000_0, Status : FAILED 
AttemptID:attempt_1432910768528_0001_m_000000_0 Timed out after 600 secs 
Container killed by the ApplicationMaster. 
Container killed on request. Exit code is 143 
Container exited with a non-zero exit code 143 

मेरा मैपर यहां अन्य इनपुट प्रोग्राम को ट्रिगर कर रहा है जो मेरी इनपुट फ़ाइल को संसाधित करने जा रहा है। प्रोग्राम जो मैपर द्वारा ट्रिगर प्राप्त कर रहा है आमतौर पर बहुत सारी मेमोरी का उपभोग करता है।

तो कृपया इस संबंध में मेरी सहायता करें।

+0

हाय user3854185, आप कृपया मुझे साझा कर सकता है आप कैसे स्पष्ट इस त्रुटि था। मुझे भी एक ही समस्या का सामना करना पड़ रहा है? – MapReddy

उत्तर

6

yarn-site.xml में गुण नीचे शामिल करें और VM पुनरारंभ करें,

<property> 
    <name>yarn.nodemanager.vmem-check-enabled</name> 
    <value>false</value> 
    <description>Whether virtual memory limits will be enforced for containers</description> 
</property> 

<property> 
    <name>yarn.nodemanager.vmem-pmem-ratio</name> 
    <value>4</value> 
    <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description> 
</property> 
2

एक कंटेनर एक यार्न जेवीएम प्रक्रिया है। मैड्रिड में एप्लिकेशन मास्टर सेवा, मैपर और रेड्यूसर कार्य सभी कंटेनर होते हैं जो यार्न ढांचे के अंदर निष्पादित होते हैं।

आप द्वारा इस समस्या को हल या तो reducers (माना mapreduce.job.reduces=10) की संख्या में वृद्धि या कम करने ढेर आकार (mapreduce.reduce.java.opts=-Xmx2014m)

में वृद्धि से कर सकते हैं रन टाइम पर कम करने की निश्चित संख्या करना चाहते हैं, तो आप कर सकते हैं कमांड लाइन पर मानचित्र/कम नौकरी पास करते समय इसे करें। वांछित संख्या के साथ -D mapreduce.job.reduces=10 का उपयोग करके रनटाइम पर कई रेड्यूसर होंगे।

कोड में, आप JobConf चर को मैपर्स और reducers की संख्या निर्धारित करने के लिए कॉन्फ़िगर कर सकते हैं। मान लें कि हमारे पास JobConf नौकरी के रूप में परिवर्तनीय है।

Configuration conf = new Configuration(); 
Job job = new Job(conf); 
job.setNumReduceTasks(10); // 10 reducers 

आप स्मृति समस्या से बचने के लिए फ़ाइल को इस विशेष नौकरी के लिए छोटे आकार में भी विभाजित कर सकते हैं।

यदि आपको अभी भी समस्या हो रही है, तो कृपया यार्न लॉग जांचें और लॉग पोस्ट करें।

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