我正在使用org.apache.spark.deploy.yarn.Client
运行Spark应用程序。我想收集火花代码生成的异常,以便我可以通过电子邮件发送它们。我尝试使用如下的try catch来围绕代码:
try{
ClientArguments clientArguments = new ClientArguments(args, sparkConf);
Client client = new Client(clientArguments, hadoopConf, sparkConf);
client.run();
}
catch (Exception e) {
System.out.println(e);
}
但应用程序打印类似
java.lang.RuntimeException: org.apache.spark.SparkException: Application application_1460365288125_171742 finished with failed status
而不是实际的异常,所以要检索真正的异常,我必须访问日志。我浏览了网页,但我找不到任何解决方案或解决方法。有人知道可能的解决方案吗?
编辑:
更一般地说,问题是:
鉴于应用程序ID(例如application_1454432703118_3634),我如何以编程方式获取应用程序期间抛出的任何异常?