【问题标题】:Hadoop mapreduce program fails with exitcode 127Hadoop mapreduce 程序失败,退出代码为 127
【发布时间】:2012-12-03 16:03:46
【问题描述】:

想运行一些 hadoop 程序。我看到 NameNode、Datanode、Yarn 集群 URL 启动并运行。即 127.0.0.1:50070 /dfshealth.jsp、localhost:8088 /cluster/cluster 等

但是当我尝试运行我的 mapreduce 程序时: $ hadoop MySampleProgram hdfs://localhost/user/cyg_server/input/myfile.txt hdfs: //localhost/user/cyg_server/output/op

程序失败并显示日志:

INFO mapreduce.Job (Job.java:monitorAndPrintJob(1295)) - 映射 0% 减少 0%

INFO mapreduce.Job (Job.java:monitorAndPrintJob(1308)) - 作业 job_1354496967950_0003 失败,状态为 FAILED,原因是:应用程序 application_1354496967950_0003 由于 AM Container 失败 1 次 appattempt_1354496967950_0003_000001 以 exitCode: 127 退出,原因是: .这次尝试失败..申请失败。

2012-12-03 07:29:50,544 信息 mapreduce.Job (Job.java:monitorAndPrintJob(1313)) - 计数器:0

当我查看一些日志时,我注意到:nodemanager.DefaultContainerExecutor (DefaultContainerExecutor.java:launchContainer(193)) - 任务的退出代码是:127

我正在使用 cygwin 在 Windows 7 中运行。

非常感谢任何输入。

:::在此处添加更多信息::: 到目前为止,我可以看到以下 hadoop 源在执行 [试图设置启动容器] 失败...我在此处添加该文件的源 URL ....(注意这不是 hadoop 错误,但我指出但我错过了一些东西).... 类:DefaultContainerExecutor 方法:启动容器 行:从方法 launchContainer 开始到打印代码的 195 行。

http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hadoop/hadoop-yarn-server-nodemanager/0.23.1/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java#193

节点管理器日志摘录

INFO nodemanager.DefaultContainerExecutor (DefaultContainerExecutor.java:launchContainer(175)) - 启动容器:[bash, /tmp/nm-local-...2936_0003/container_1354566282936_0003_01_000001/default_container_executor.sh]

警告 nodemanager.DefaultContainerExecutor (DefaultContainerExecutor.java:launchContainer(193)) - 退出代码 任务是:127

INFO nodemanager.ContainerExecutor (ContainerExecutor.java:logOutput(167)) -

WARN 启动器.ContainerLaunch (ContainerLaunch.java:call(274)) - 容器以非零退出代码 127 退出

谢谢哈里

【问题讨论】:

  • 只是将您的旧问题发布到新问题中,并不意味着这会更好。请查看导致您平台上的退出代码 127 的原因,然后返回一个具体问题。
  • 我已经重新格式化它并且更具可读性。我不确定是什么导致了退出代码 127。这实际上就是我在这里发布这个问题的原因。如果可以的话,我肯定会添加更多信息。
  • 问题是,退出代码 127 可能由任何原因引起。因此,您需要提供一些日志数据或 PC 的指标。
  • bash 的退出状态 127 表示找不到命令。尝试手动运行 bash /tmp/nm-local-*2936_0003/container_1354566282936_0003_01_000001/default_container_executor.sh。
  • pensz:谢谢,这就是我想要的。但是该程序在退出时会清除所有 tmp 目录,包括该 .sh 文件。所以试图看看我是否可以做一些事情来让那个 .sh 文件中的脚本持久化。

标签: hadoop exit-code


【解决方案1】:

对 hadoop-env.sh 中的 java home 路径进行硬编码为我解决了如下问题:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home

【讨论】:

  • 我遇到了同样的问题。此解决方案有效。非常感谢!
【解决方案2】:

当我尝试使用标准 Hadoop 发行版中未包含的库(在我的情况下为org.apache.lucene)时遇到了这个问题。解决方案是使用"yarn.application.classpath" 配置属性将缺少的库添加到纱线类路径:

    String cp = conf.get("yarn.application.classpath");
    String home=System.getenv("HOME");
    cp+=","+home+"/" + ".m2/repository/org/apache/lucene/lucene-core/4.4.0/*";
    cp+=","+home+"/" + ".m2/repository/org/apache/lucene/lucene-analyzers/4.4.0/*";
    cp+=","+home+"/" + ".m2/repository/org/apache/lucene/lucene-analyzers-common/4.4.0/*";
    conf.set("yarn.application.classpath", cp);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-25
    • 2021-06-04
    • 2019-05-02
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    相关资源
    最近更新 更多