3

想运行一些 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 由于应用程序尝试_1354496967950_0003_000001 的 AM 容器而失败 1 次:此尝试失败。22 失败并退出此尝试:失败。应用程序。

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 行:从方法 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。爪哇#193

节点管理器日志提取

信息 nodemanager.DefaultContainerExecutor (DefaultContainerExecutor.java:launchContainer(175)) -launchContainer: [bash, /tmp/nm-local-...2936_0003/container_1354566282936_0003_01_000001/default_container_executor.sh]

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

信息 nodemanager.ContainerExecutor (ContainerExecutor.java:logOutput(167)) -

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

谢谢哈里

4

2 回答 2

3

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

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
于 2017-06-06T10:10:21.297 回答
1

当我尝试使用标准 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);
于 2014-02-21T06:23:05.030 回答