2015-11-17 15 views
8

İki çalışan düğüm kümem var. Worker_Node_1 - 64GB RAM Worker_Node_2 - 32GB RAMSpark - Kapsayıcı, fiziksel bellek sınırlarının ötesine ilerliyor

Arkaplan yazlık: Bütün bir kaynak, tepe noktasından en kısa yol mesafeleri hesaplamak için bir Grafiğinde Pregel çalıştırmak için iplik küme üzerinde kıvılcım göndermek yürütmek çalışıyorum diğer köşe noktaları ve değerleri konsolda yazdırın. Experment:

  1. 15 köşe yürütme ile Küçük grafiğinde uygulama nihai statüsünün tamamlar: Kodum mükemmel ve kaynak tepe olarak tek köşe için 241 köşe grafik için baskılar en kısa mesafe çalışıyor ancak bir sorun var
  2. SUCCEEDED.

Sorun: Ben görev dosya giriş içine kazmak tam başarıyla 4 dakika ve 26 Saniyede ama yine Running gibi uygulama durumunu gösteren devam ediyor terminalinde ve yaklaşık 12 sonra alır

:

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. 

şeyler denedim - dakika daha görev yürütme söyleyerek sonlandırır

  1. yarn.schedular.maximum ayırma-MB - 32GB
  2. mapreduce.map.memory.mb = 2048
24g kadar --driver-bellek değişen çalıştı (Daha önce 1024 olarak)

Kaynak Yöneticisi'ni Büyük Boyutlu Grafikler (> 300K köşe noktaları) da işlenebilecek şekilde nasıl yapılandırabileceğimize daha fazla renk koyabilir misiniz? Teşekkürler.

+1

Daha önce benzer bir soru var: http://stackoverflow.com/questions/21005643/container-is-running-beyond-memory-limits –

+0

@aditya Bir şey buldunuz mu? diğeri bana yardımcı olmadı –

+0

Uygulamanızın küme kapasitesiyle ince ayar yapmanız gerekir. Params --driver-memory --executor-memory --executor-cores --num-executors, iplik-kümesinde kıvılcım gönderirken çok önemli bir rol oynar. – aditya

cevap

2

Daha fazla veri işliyorsanız, her Spark görevi için daha fazla belleğe ihtiyaç vardır. Ve eğer idareciniz çok fazla görev yürütüyorsa, o zaman hafızası bitebilir. Büyük miktarda veriyi işlerken sorun yaşadığımda, genellikle, yürütücü başına çekirdek sayısını doğru bir şekilde dengelememenin bir sonucuydu. Ya çekirdek sayısını azaltmaya veya yürütücü belleğini artırmaya çalışın.

Bellek sorunlarınız olduğunu söylemenin kolay bir yolu, Kıvılcım UI'sındaki Executor sekmesini kontrol etmektir. Yüksek çöp toplama süresini gösteren çok sayıda kırmızı çubuk görürseniz, muhtemelen yürütücünüzde bellek yetersiz kalır.