在Spark日志中获取完整堆栈跟踪

时间:2017-07-17 19:43:39

标签: scala apache-spark

我希望在我的spark执行器日志中看到完整的堆栈跟踪。

我有例如:

  

引起:java.lang.RuntimeException:java.lang.Long不是int模式的有效外部类型       在org.apache.spark.sql.catalyst.expressions.GeneratedClass $ SpecificUnsafeProjection.apply_0 $(generated.java:434)       在org.apache.spark.sql.catalyst.expressions.GeneratedClass $ SpecificUnsafeProjection.apply(generated.java:737)       在org.apache.spark.sql.catalyst.encoders.ExpressionEncoder.toRow(ExpressionEncoder.scala:290)       ......还有18个

我想看到另外18个缺失。我已经尝试过更改为日志级别等,但它没有帮助。

1 个答案:

答案 0 :(得分:0)

Solusion 1.在你的spark安装文件夹中,有一个conf文件夹包含log4j.properties文件,你可以将该文件配置为日志级别。

Spark默认使用INFO,买你可以改为DEBUG或TRACE来获取所有的火花日志。 配置模板: https://github.com/apache/spark/blob/master/conf/log4j.properties.template

Level的其他选项包括:all,debug,error,fatal,info,off,trace,trace_int,warn

Solusion 2.将这些记录器放入SparkContext()函数

import org.apache.log4j.Logger; 
import org.apache.log4j.Level;

Logger.getLogger("org").setLevel(Level.INFO); 
Logger.getLogger("akka").setLevel(Level.INFO);

level.Info可以更改为DEBUG OR TRACE等。