2015-11-17 12 views
8

मेरे पास दो कार्यकर्ता नोड्स का समूह है। Worker_Node_1 - 64GB राम Worker_Node_2 - 32GB रामस्पार्क - कंटेनर भौतिक स्मृति सीमा से परे चल रहा है

पृष्ठभूमि Summery: मैं निष्पादित करने के लिए सभी के लिए एक स्रोत शिखर से कम से कम पथ दूरी की गणना करने के लिए एक ग्राफ पर Pregel चलाने के लिए सूत-क्लस्टर पर चिंगारी के लिये भेज कोशिश कर रहा हूँ अन्य शीर्षकों और कंसोल पर मूल्य मुद्रित करें। Experment:

  1. 15 कोने निष्पादन के साथ लघु ग्राफ के लिए पूरा करता है आवेदन अंतिम स्थिति: SUCCEEDED
  2. मेरे कोड पूरी तरह से और प्रिंट स्रोत शिखर के रूप में एक शीर्ष के लिए 241 कोने ग्राफ के लिए कम से कम दूरी काम करता है लेकिन वहाँ एक समस्या है।

समस्या: जब मैं लॉग में खुदाई कार्य फ़ाइल पूरा सफलतापूर्वक 4 मिनट और 26 सेकेंड में, लेकिन अभी भी टर्मिनल यह आवेदन की स्थिति दिखाने पर रहता है के रूप में चल रहा है पर और लगभग 12 के बाद हो जाता है

:

Application application_1447669815913_0002 failed 2 times due to AM Container for appattempt_1447669815913_0002_000002 exited with exitCode: -104 For more detailed output, check application tracking page:http://myserver.com:8088/proxy/application_1447669815913_0002/ 
Then, click on links to logs of each attempt. 
Diagnostics: Container [pid=47384,containerID=container_1447669815913_0002_02_000001] is running beyond physical memory limits. Current usage: 17.9 GB of 17.5 GB physical memory used; 18.7 GB of 36.8 GB virtual memory used. Killing container. 

Dump of the process-tree for container_1447669815913_0002_02_000001 : 
|- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE 
|- 47387 47384 47384 47384 (java) 100525 13746 20105633792 4682973 /usr/lib/jvm/java-7-oracle-cloudera/bin/java -server -Xmx16384m -Djava.io.tmpdir=/yarn/nm/usercache/cloudera/appcache/application_1447669815913_0002/container_1447669815913_0002_02_000001/tmp -Dspark.eventLog.enabled=true -Dspark.eventLog.dir=hdfs://myserver.com:8020/user/spark/applicationHistory -Dspark.executor.memory=14g -Dspark.shuffle.service.enabled=false -Dspark.yarn.executor.memoryOverhead=2048 -Dspark.yarn.historyServer.address=http://myserver.com:18088 -Dspark.driver.extraLibraryPath=/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hadoop/lib/native -Dspark.shuffle.service.port=7337 -Dspark.yarn.jar=local:/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/spark/lib/spark-assembly.jar -Dspark.serializer=org.apache.spark.serializer.KryoSerializer -Dspark.authenticate=false -Dspark.app.name=com.path.PathFinder -Dspark.master=yarn-cluster -Dspark.executor.extraLibraryPath=/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hadoop/lib/native -Dspark.yarn.am.extraLibraryPath=/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hadoop/lib/native -Dspark.yarn.app.container.log.dir=/var/log/hadoop-yarn/container/application_1447669815913_0002/container_1447669815913_0002_02_000001 org.apache.spark.deploy.yarn.ApplicationMaster --class com.path.PathFinder --jar file:/home/cloudera/Documents/Longest_Path_Data_1/Jars/ShortestPath_Loop-1.0.jar --arg /home/cloudera/workspace/Spark-Integration/LongestWorstPath/configFile --executor-memory 14336m --executor-cores 32 --num-executors 2 
|- 47384 47382 47384 47384 (bash) 2 0 17379328 853 /bin/bash -c LD_LIBRARY_PATH=/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hadoop/lib/native::/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hadoop/lib/native /usr/lib/jvm/java-7-oracle-cloudera/bin/java -server -Xmx16384m -Djava.io.tmpdir=/yarn/nm/usercache/cloudera/appcache/application_1447669815913_0002/container_1447669815913_0002_02_000001/tmp '-Dspark.eventLog.enabled=true' '-Dspark.eventLog.dir=hdfs://myserver.com:8020/user/spark/applicationHistory' '-Dspark.executor.memory=14g' '-Dspark.shuffle.service.enabled=false' '-Dspark.yarn.executor.memoryOverhead=2048' '-Dspark.yarn.historyServer.address=http://myserver.com:18088' '-Dspark.driver.extraLibraryPath=/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hadoop/lib/native' '-Dspark.shuffle.service.port=7337' '-Dspark.yarn.jar=local:/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/spark/lib/spark-assembly.jar' '-Dspark.serializer=org.apache.spark.serializer.KryoSerializer' '-Dspark.authenticate=false' '-Dspark.app.name=com.path.PathFinder' '-Dspark.master=yarn-cluster' '-Dspark.executor.extraLibraryPath=/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hadoop/lib/native' '-Dspark.yarn.am.extraLibraryPath=/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hadoop/lib/native' -Dspark.yarn.app.container.log.dir=/var/log/hadoop-yarn/container/application_1447669815913_0002/container_1447669815913_0002_02_000001 org.apache.spark.deploy.yarn.ApplicationMaster --class 'com.path.PathFinder' --jar file:/home/cloudera/Documents/Longest_Path_Data_1/Jars/ShortestPath_Loop-1.0.jar --arg '/home/cloudera/workspace/Spark-Integration/LongestWorstPath/configFile' --executor-memory 14336m --executor-cores 32 --num-executors 2 1> /var/log/hadoop-yarn/container/application_1447669815913_0002/container_1447669815913_0002_02_000001/stdout 2> /var/log/hadoop-yarn/container/application_1447669815913_0002/container_1447669815913_0002_02_000001/stderr 
Container killed on request. Exit code is 143 
Container exited with a non-zero exit code 143 
Failing this attempt. Failing the application. 

बातें मैंने कोशिश की - अधिक मिनट कार्य निष्पादन कह समाप्त हो जाता है

  1. yarn.schedular.maximum-आवंटन-एमबी - 32GB
  2. mapreduce.map.memory.mb = 2048 (पहले जो 1024 था)
24g तक --driver स्मृति अलग की कोशिश की

क्या आप संसाधन प्रबंधक को कॉन्फ़िगर कैसे कर सकते हैं इस पर अधिक रंग डाल सकते हैं ताकि बड़े आकार के ग्राफ (> 300 के शिखर) को भी संसाधित किया जा सके? धन्यवाद।

+1

पिछले समान प्रश्न हैं: http://stackoverflow.com/questions/21005643/container-is-running-beyond-memory-limits –

+0

@ आदित्य आपको कुछ मिला? दूसरे ने मेरी मदद नहीं की –

+0

आपको क्लस्टर की क्षमता के साथ अपने आवेदन को ठीक करने की आवश्यकता है। पैराम्स - ड्रायवर-मेमोरी - एक्सटेक्टर-मेमोरी - एक्सचेंटर-कोर - नॉन-एक्जिक्यूटर्स यार्न-क्लस्टर पर स्पार्क-सबमिट करते समय एक बहुत ही महत्वपूर्ण भूमिका निभाते हैं। – aditya

उत्तर

0

स्पार्क नौकरियां संसाधन प्रबंधक से संसाधनों के लिए MapReduce नौकरियों से अलग तरीके से पूछती हैं। प्रत्येक निष्पादक को आवंटित निष्पादकों और mem/vcore की संख्या को ट्यून करने का प्रयास करें। http://spark.apache.org/docs/latest/submitting-applications.html

2

जितना अधिक डेटा आप संसाधित कर रहे हैं, प्रत्येक स्पार्क कार्य द्वारा अधिक स्मृति की आवश्यकता होती है। और यदि आपका निष्पादक बहुत अधिक कार्य चला रहा है तो यह स्मृति से बाहर हो सकता है। जब मुझे बड़ी मात्रा में डेटा प्रोसेस करने में समस्याएं थीं, तो आमतौर पर यह प्रति निष्पादक कोर की संख्या को सही तरीके से संतुलित करने का नतीजा था। कोर की संख्या को कम करने या निष्पादक स्मृति को बढ़ाने की कोशिश करें।

स्पार्क यूआई पर एक्जिक्यूटर टैब की जांच करना एक आसान तरीका है कि आपको स्मृति समस्याएं हैं। यदि आप उच्च कचरा संग्रहण समय का संकेत देने वाले बहुत से लाल सलाखों को देखते हैं, तो संभवतः आप अपने निष्पादकों में स्मृति से बाहर हो रहे हैं।

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