我注意到,每次催化剂改变计划时,spark中的RuleExecutor都会执行跟踪日志:

https://github.com/apache/spark/blob/78801881c405de47f7e53eea3e0420dd69593dbd/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/rules/RuleExecutor.scala#L93

我想知道的是如何配置spark以便打开跟踪日志记录? 我正在使用log4j,并且遇到了以下文档: https : //jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-logging.html

我一直在研究代码一段时间,并且看到可以将'log4j.threshold = TRACE'设置为使记录器的一部分处于跟踪模式,但是我似乎无法使催化剂使用催化剂拿起设置。

我究竟做错了什么?

#1楼 票数:0

我只是尝试了一个简单的结构化流程序,从IntelliJ中的Kafka读取数据,以下语句对我有用,即给了我跟踪级别的日志:

SparkSession.builder().getOrCreate().sparkContext().setLogLevel("TRACE");

这是显示某些跟踪日志的输出的一部分:

...
...
18/10/12 23:56:02 TRACE package$ExpressionCanonicalizer: Fixed point reached for batch CleanExpressions after 1 iterations.
18/10/12 23:56:02 TRACE package$ExpressionCanonicalizer: Batch CleanExpressions has no effect.
18/10/12 23:56:02 TRACE package$ExpressionCanonicalizer: Fixed point reached for batch CleanExpressions after 1 iterations.
18/10/12 23:56:02 TRACE package$ExpressionCanonicalizer: Batch CleanExpressions has no effect.
18/10/12 23:56:02 TRACE package$ExpressionCanonicalizer: Fixed point reached for batch CleanExpressions after 1 iterations.
18/10/12 23:56:02 TRACE package$ExpressionCanonicalizer: Batch CleanExpressions has no effect.
18/10/12 23:56:02 TRACE package$ExpressionCanonicalizer: Fixed point reached for batch CleanExpressions after 1 iterations.
18/10/12 23:56:02 TRACE package$ExpressionCanonicalizer: Batch CleanExpressions has no effect.
+-----+----+-----+-----------------------+
|topic|key |value|timestamp              |
+-----+----+-----+-----------------------+
|test |null|hi345|2018-10-12 23:56:00.099|
+-----+----+-----+-----------------------+
18/10/12 23:56:02 DEBUG GenerateUnsafeProjection: code for input[0, string, true],input[1, string, true],input[2, string, true],input[3, string, true]:
/* 001 */ public java.lang.Object generate(Object[] references) {
/* 002 */   return new SpecificUnsafeProjection(references);
/* 003 */ }
/* 004 */
/* 005 */ class SpecificUnsafeProjection extends org.apache.spark.sql.catalyst.expressions.UnsafeProjection {
/* 006 */
/* 007 */   private Object[] references;
...
...

希望这可以帮助!

  ask by Andy translate from so

未解决问题?本站智能推荐:

3回复

如何在spark中更改日志级别?

我尝试了所有这些方法,但没有任何效果: 在 log4j 文件中 - 在代码中: 是的,也尝试过将它放在 spark 上下文对象之后。似乎没有任何效果。 我错过了什么? 或者有另一种设置日志级别的方法吗?
2回复

Spark 自定义日志记录

我的 IDE 中有多个 Spark 项目。 默认情况下,spark 在 spark/conf 文件夹中选择 log4j.properties 文件。 因为我有多个 spark 项目,所以我想要多个 log4j.properties 文件(每个项目一个)。 可能作为项目代码的一部分(资源文件夹)
1回复

在IntelliJ中启用Spark日志

我正在intelliJ上运行我的spark作业,并收到以下错误: 但是,当我使用spark-submit运行相同的jar /类时,我能够获取所需的所有INFO日志: 如何在IntelliJ中切换到默认日志文件,以便可以通过INFO日志获取有关Spark Ui等的信息?
1回复

使用log4j.xml配置Spark日志记录

我猜这是一个愚蠢的问题,但我在任何地方都找不到答案。 我可以使用log4j.xml配置登录spark吗? 在spark 文档中提到的您可以使用log4j.properties配置日志记录,我希望将log4j.xml用于更高级的log4j功能,例如异步附加程序。 我的工作将在通过oo
1回复

自定义日志记录配置被Spark默认日志记录配置覆盖

我试图将火花日志写入边缘节点上的自定义位置。 但是我的log4j.properties文件被spark2-client / conf / log4j.properties中的默认集群属性文件覆盖 请帮助我解决此问题。 以下是详细信息: 我正在使用以下版本:Spark版本2.1
1回复

如何从应用程序日志中避免Spark和Hive日志

我想学习如何从应用程序日志中避免Spark和Hive日志。 我的意思是spark和hive都使用log4j属性文件。 我已经根据我的应用程序在下面配置了log4j.property文件,但是它也正在打印Spark和Hive控制台日志。 我正在HDFS环境中运行应用程序。
1回复

LOG4J 日志记录不适用于 Spark 纱线集群模式

我已经构建了一个 pyspark 应用程序并使用 log4j 进行日志记录。 问题是当我在纱线客户端模式下运行 spark 应用程序时,日志正在发生,但是当我在纱线集群模式下运行应用程序时,它没有。 我也希望在集群模式下打印日志消息并将其保存为文件。 已经试过了
1回复

Slf4j vs Log4j-在Spark集群模式下使用哪个日志记录?

Spark中的Slf4j和Log4j日志记录有什么区别? Log4j如何用于Spark集群模式下的日志记录?