【问题标题】:Application failed 2 times due to AM Container: exited with exitCode: 1由于 AM Container 导致应用程序失败 2 次:以 exitCode 退出:1
【发布时间】:2022-03-30 21:36:25
【问题描述】:

我在 hadoop-2.7.0 上运行了 mapreduce 作业,但无法启动 mapreduce 作业,并且遇到了以下错误:

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

这个错误的原因是什么,我该如何解决这个问题?

任何帮助表示赞赏。

【问题讨论】:

  • 您的工作应用程序主程序无法启动。尝试检查纱线日志以获取更详细的消息。 yarn logs -applicationId APP_ID
  • 谢谢,我写了这个命令,但我遇到这个消息是什么意思?用法:yarn [options] yarn: error: no such option: -a
  • 请将您尝试运行的命令添加到您的问题中
  • 您好,我在尝试从 StepFunction 启动 Glue 作业时遇到此错误,您知道是什么问题吗?

标签: hadoop mapreduce


【解决方案1】:

在资源管理器上查看日志:

namenodeip:8088

您收到此错误:

现在打开终端并检查实际问题:

yarn logs -applicationId <APP_ID>

示例:APP_ID = application_1535002188113_0001

在我的情况下,它显示权限问题:

所以我给了它:

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

【讨论】:

    【解决方案2】:

    您可以查看实际问题的应用程序日志。

    为此,您可以在 namenode_ip:50070
    在这里你可以看到浏览选项,点击它。
    在子菜单中,选择日志。
    现在选择用户日志。

    在这里您可以看到您运行的应用程序列表。

    打开上面提到的工作的链接application_1491779488590_0002,你可以看到每个地图和减少任务的日志。 打开 map/reduce 作业日志链接。

    在里面你可以看到:sys、error、stdout 文件。 从这些日志文件中,您可以获得实际的错误并可以修复它。

    或者你看到这些登录 $HADOOP_HOME/logs/userlogs/application_id 路径。

    应用程序失败 2 次,因为如果应用程序主机失败了 出于某种原因,默认情况下它会尝试执行应用程序之一 更多时间。可以将 AM 重试属性设置为 1 来避免这种情况。

    【讨论】:

      【解决方案3】:

      您可以修改 yarn-site.xml 文件并添加此代码(ps: %HADOOP_HOME%: 是您的环境变量):

       <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>
      
      • 它对我有用 :)

      【讨论】:

        猜你喜欢
        • 2023-03-16
        • 2019-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-15
        • 2018-05-26
        • 1970-01-01
        相关资源
        最近更新 更多