我正在运行风暴(三叉戟)拓扑,从kafka&读取avro在hbase中写入记录。 拓扑在Localcluster模式下按预期运行,但在使用Stormsubmitter时我遇到了以下问题。
你能帮助我理解这个容器失败的原因吗?应用程序日志中没有错误/信息。
[1] YARN容器无法启动,运行时出现以下错误。
storm-yarn launch /homext/storm-yarn.yml --queue default -appname storm-yarn-demo --stormZip /tmp/storm-0.9.zip
Application application_1415038356032_0304 failed 2 times due to AM Container for appattempt_1415038356032_0304_000002 exited with exitCode: 127 due to: Exception from container-launch: org.apache.hadoop.util.Shell$ExitCodeException:
org.apache.hadoop.util.Shell$ExitCodeException:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
at org.apache.hadoop.util.Shell.run(Shell.java:418)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:283)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:79)
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 127
.Failing this attempt.. Failing the application.
答案 0 :(得分:0)
此日志不足以诊断。它说的是容器无法启动。您应该查看容器输出。检查节点上的${yarn.nodemanager.log-dirs}
,将会有一个应用程序文件夹(application_1415038356032_0304),并且每次尝试都会有一个容器文件夹(... 1415038356032_0304_000002),其中包含此尝试的stderr,stdout和syslog。阅读这些内容,您可能会发现问题。
如果这些不存在,请查看${yarn.nodemanager.local-dirs}
您将找到此应用/容器尝试的容器启动脚本(我认为称为container-launch.sh
)。在它中将是启动容器的实际命令。尝试从shell提示符运行它,看看你得到了什么。
答案 1 :(得分:0)
如果它在早期阶段失败,则可以在HDFS中找到日志:
/tmp/logs/<user>/logs/
这应该提供足够的信息来诊断问题。
就我而言,我找到了一个日志文件:
/tmp/logs/hdfs/logs/application_1426618997634_0004/vagrant-cdh-node4_8041
有一些错误,如:
/bin/bash: /usr/lib/jvm/java-7-oracle/bin/java: No such file or directory
修复JAVA_HOME环境变量就可以了。