我在Yarn Cluster上运行我的Spark应用程序 . 无论我做什么,我都无法打印RDD功能中的日志 . 您可以在下面找到我为RDD处理函数编写的示例代码段 . 我简化了代码来说明我用来编写函数的语法 . 当我在本地运行它时,我能够看到日志但不能在群集模式下查看 . System.err.println和 Logger 似乎都没有工作 . 但我可以看到我的所有驱动程序日志 . 我甚至尝试使用Root Logger 进行记录,但它在RDD处理函数中根本不起作用 . 我非常想看到日志消息,所以最后我找到了一个使用logger作为瞬态的指南(https://www.mapr.com/blog/how-log-apache-spark),但事件没有没有帮助
class SampleFlatMapFunction implements PairFlatMapFunction ,String,String>{
private static final long serialVersionUID = 6565656322667L;
transient Logger executorLogger = LogManager.getLogger("sparkExecutor");
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException {
in.defaultReadObject();
executorLogger = LogManager.getLogger("sparkExecutor");
}
@Override
public Iterable> call(Tuple2 tuple) throws Exception