2016-02-17 4 views
11

Ich habe mit einer Spur Funkenjob hatte versagt wie diese:Warum Funkenjob nicht mit „Exit-Code: 52“

./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-Container id: container_1455622885057_0016_01_000008 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-Exit code: 52 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr:Stack trace: ExitCodeException exitCode=52: 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-  at org.apache.hadoop.util.Shell.runCommand(Shell.java:545) 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-  at org.apache.hadoop.util.Shell.run(Shell.java:456) 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-  at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:722) 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-  at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211) 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-  at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302) 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-  at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82) 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-  at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-  at java.lang.Thread.run(Thread.java:745) 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr- 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr- 
./containers/application_1455622885057_0016/container_1455622885057_0016_01_000001/stderr-Container exited with a non-zero exit code 52 

Es hat mich eine Weile gedauert, um herauszufinden, was „Exit-Code 52“ bedeutet , also setze ich das hier zum Wohle anderer ein, die vielleicht suchen.

+0

Ok, heute habe ich den gleichen Fehler bekommen. Ich überprüfe die Konfigurationsdatei von Funken, und bei 'Spark.memory.fraction 0', Default-Werte ist 0,2. Also habe ich diese Zeile entfernt. Oder versuchen Sie, es bei 0.8 – DanieleO

+0

zu aktualisieren Das sollte in Funken 1.6.0 nicht wichtig sein - es sollte Gedächtnisbruch automatisch justieren – Virgil

Antwort

12

Der Exit Code 52 kommt von org.apache.spark.util.SparkExitCode, und es ist val OOM=52 - dh ein OutOfMemoryError. Das macht Sinn, da ich dies auch in den Container Protokolle finden:

16/02/16 17:09:59 ERROR executor.Executor: Managed memory leak detected; size = 4823704883 bytes, TID = 3226 
16/02/16 17:09:59 ERROR executor.Executor: Exception in task 26.0 in stage 2.0 (TID 3226) 
java.lang.OutOfMemoryError: Unable to acquire 1248 bytes of memory, got 0 
     at org.apache.spark.memory.MemoryConsumer.allocatePage(MemoryConsumer.java:120) 
     at org.apache.spark.shuffle.sort.ShuffleExternalSorter.acquireNewPageIfNecessary(ShuffleExternalSorter.java:354) 
     at org.apache.spark.shuffle.sort.ShuffleExternalSorter.insertRecord(ShuffleExternalSorter.java:375) 
     at org.apache.spark.shuffle.sort.UnsafeShuffleWriter.insertRecordIntoSorter(UnsafeShuffleWriter.java:237) 
     at org.apache.spark.shuffle.sort.UnsafeShuffleWriter.write(UnsafeShuffleWriter.java:164) 
     at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:73) 
     at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41) 
     at org.apache.spark.scheduler.Task.run(Task.scala:89) 
     at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 

(beachten Sie, dass ich an dieser Stelle nicht wirklich sicher bin, ob das Problem in meinem Code ist oder aufgrund der Tungsten Speicherlecks, aber das ist ein anderes Problem)

+0

ich laufe in ein ähnliches Problem. Irgendein Update? – morfious902002

+1

Verwenden Sie weniger Speicher oder andere (größere) Maschinen :) – Virgil

+2

Erhöhen der Anzahl der Partitionen für mich gearbeitet. Die 200 sql Standardpartitionen waren zu klein für mein Dataset. – morfious902002

Verwandte Themen