it-swarm.com.de

Die Anwendung ist aufgrund von AM-Container 2 Mal fehlgeschlagen: mit exitCode: 1 beendet

Ich hatte einen mapreduce-Job auf hadoop-2.7.0 ausgeführt, aber der mapreduce-Job kann nicht gestartet werden, und ich sah mich diesem folgenden Fehler gegenüber:

Job job_1491779488590_0002 failed with state FAILED due to: Application application_1491779488590_0002 failed 2 times due to AM Container for appattempt_1491779488590_0002_000002 exited with  exitCode: 1
For more detailed output, check application tracking page:http://erfan:8088/cluster/app/application_1491779488590_0002Then, click on links to logs of each attempt.
Diagnostics: Exception from container-launch.
Container id: container_1491779488590_0002_02_000001
Exit code: 1
Stack trace: ExitCodeException exitCode=1: 
    at org.Apache.hadoop.util.Shell.runCommand(Shell.Java:545)
    at org.Apache.hadoop.util.Shell.run(Shell.Java:456)
    at org.Apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.Java:722)
    at org.Apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.Java:211)
    at org.Apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.Java:302)
    at org.Apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.Java:82)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:262)
    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)


Container exited with a non-zero exit code 1
Failing this attempt. Failing the application.
17/04/10 13:40:08 INFO mapreduce.Job: Counters: 0

Was ist der Grund für diesen Fehler und wie kann ich dieses Problem lösen?

jede hilfe geschätzt.

10
Erfan Farhangy

Überprüfen Sie die Protokolle in Resource Manager:

namenodeip:8088

sie haben folgende Fehlermeldung erhalten:  enter image description here

Öffnen Sie nun das Terminal und prüfen Sie das aktuelle Problem:

yarn logs -applicationId <APP_ID>

Beispiel: APP_ID = application_1535002188113_0001

In meinem Fall zeigt es Erlaubnisprobleme:

also gab ich es:

   Sudo -u hdfs hadoop fs -chmod 775 /user/history
   
   or
   
   Sudo -u hdfs hadoop fs -chmod 777 /user/history

2
Hmnt Jangir

Sie sehen die Anwendungsprotokolle für das aktuelle Problem.

Dazu können Sie die Namenode-Weboberfläche auf Namenode_ip: 50070 öffnen
Hier können Sie die Durchsuchen-Option sehen, klicken Sie darauf.
Wählen Sie im Untermenü Protokolle aus.
.__ Wählen Sie nun die Benutzerlogs aus.

Hier sehen Sie die Liste der von Ihnen ausgeführten Anwendungen.

Öffnen Sie den Link application_1491779488590_0002 für Ihren oben genannten Job, in dem Sie die Protokolle für jede Map sehen und die Aufgabe reduzieren können. Map öffnen/Jobprotokoll löschen.

Darin sehen Sie: sys, error, stdout files . Aus diesen Protokolldateien können Sie den tatsächlichen Fehler abrufen und diesen beheben.

Oder Sie sehen diese Protokolle im Pfad $ HADOOP_HOME/logs/userlogs/application_id.

Die Anwendung ist zweimal fehlgeschlagen, da der Anwendungsmaster aus irgendeinem Grund standardmäßig einmal versucht, die Anwendung erneut auszuführen. Die Eigenschaft AM-Wiederholung kann auf 1 gesetzt werden, um dies zu vermeiden.

2
Rahul

Sie können die Datei garne-site.xml ändern und diesen Code hinzufügen (ps:% HADOOP_HOME%: ist Ihre Umgebungsvariable):

 <property>
       <name>yarn.application.classpath</name>
       <value>
            %HADOOP_HOME%\etc\hadoop,
            %HADOOP_HOME%\share\hadoop\common\*,
            %HADOOP_HOME%\share\hadoop\common\lib\*,
            %HADOOP_HOME%\share\hadoop\hdfs\*,
            %HADOOP_HOME%\share\hadoop\hdfs\lib\*,
            %HADOOP_HOME%\share\hadoop\mapreduce\*,
            %HADOOP_HOME%\share\hadoop\mapreduce\lib\*,
            %HADOOP_HOME%\share\hadoop\yarn\*,
            %HADOOP_HOME%\share\hadoop\yarn\lib\*
       </value>
    </property>
  • es hat für mich funktioniert :)
0
basma