2014-12-06 68 views
12

我正在Cloudera群集上以YARN客户端模式启动分布式Spark应用程序。一段时间后,我在Cloudera Manager上看到一些错误。一些执行者断开连接,并且系统地发生这种情况。我想调试这个问题,但YARN没有报告内部异常。Spark执行程序登录YARN

Exception from container-launch with container ID: container_1417503665765_0193_01_000003 and exit code: 1 
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:702) 
    at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:196) 
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:299) 
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:81) 
    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) 

如何查看异常的堆栈跟踪? YARN似乎只报告应用程序异常退出。有没有办法看到火花执行器登录YARN配置?

回答

3

检查节点管理器的yarn.nodemanager.log-dir财产。这是Spark执行器容器运行时的日志位置。

注意,当应用程序完成节点管理器可以删除的文件(日志聚合)。查看这个文件的细节。 http://hortonworks.com/blog/simplifying-user-logs-management-and-access-in-yarn/

+0

感谢您的回复。这没有让我找到异常的完整堆栈跟踪,但现在我知道问题的原因(OperationNotSupportedException,只有描述存在于您建议的日志中)。如果您知道一种方法来查找完整的堆栈跟踪,请告诉我。 – 2014-12-06 22:06:24

+0

您可能想要捕捉传递给变换的函数的异常。 – gonbe 2014-12-06 23:08:07

+0

我想抓住它并将跟踪转储到/ tmp文件夹中的本地文件。我希望有一个更清洁的解决方案.. – 2014-12-06 23:13:16

相关问题