我有一个带有2个节点的集群设置,我正在尝试wordcount示例。当我发送作业并在ResourceManager web GUI上监视它时,我得到了这个异常
Diagnostics: Exception from container-launch.
Container id: container_1425407150767_0009_02_000001
Exit code: 1
Stack trace: ExitCodeException exitCode=1:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
at org.apache.hadoop.util.Shell.run(Shell.java:455)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:
715)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.la
unchContainer(DefaultContainerExecutor.java:211)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.C
ontainerLaunch.call(ContainerLaunch.java:302)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.C
ontainerLaunch.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)
当我在web GUI上查看日志时,我会看到这个
'"C:Program FilesJavajdk1.7.0_75"' is not recognized as an internal or external command,
operable program or batch file.
这是什么意思?我的JAVA_HOME和所有设置都正确,我不确定是什么原因导致的。有什么想法吗?
我遇到了同样的问题,我已经解决了。
- 避免使用c:\program文件中的java
将C:\Program Files\Java\jdk1.7.0_75复制到C:\Java\jdk1.7.0_75,以便跳过"Program Files"上的"space"并将Java_HOME设置为C:\Java\jdk1.70_75
- 检查JAVA_HOME的引号
请在hadoop-env.cmd上查看您的JAVA_HOME,该
set JAVA_HOME=C:Javajdk1.7.0_75
不是
set JAVA_HOME="C:Javajdk1.7.0_75"
换句话说,"不适用于Windows参数。
这意味着您的Java配置不正确(在路径中)。
检查您JAVA_HOME,它应该指向
C: \Program Files\Java\jdk1.7.0_75
路径应该像$JAVA_HOME/bin
您需要将可执行路径保留在path变量中,但不保留基本的HOME目录。
希望这对你有帮助。。