Logging 如何在Spark中抑制拼花地板日志消息?
如何阻止此类消息出现在我的spark shell控制台上Logging 如何在Spark中抑制拼花地板日志消息?,logging,apache-spark,parquet,Logging,Apache Spark,Parquet,如何阻止此类消息出现在我的spark shell控制台上 5 May, 2015 5:14:30 PM INFO: parquet.hadoop.InternalParquetRecordReader: at row 0. reading next block 5 May, 2015 5:14:30 PM INFO: parquet.hadoop.InternalParquetRecordReader: RecordReader initialized will read a total of
5 May, 2015 5:14:30 PM INFO: parquet.hadoop.InternalParquetRecordReader: at row 0. reading next block
5 May, 2015 5:14:30 PM INFO: parquet.hadoop.InternalParquetRecordReader: RecordReader initialized will read a total of 89213 records.
5 May, 2015 5:14:30 PM INFO: parquet.hadoop.InternalParquetRecordReader: block read in memory in 2 ms. row count = 120141
5 May, 2015 5:14:30 PM INFO: parquet.hadoop.InternalParquetRecordReader: at row 0. reading next block
5 May, 2015 5:14:30 PM INFO: parquet.hadoop.InternalParquetRecordReader: block read in memory in 2 ms. row count = 89213
5 May, 2015 5:14:30 PM WARNING: parquet.hadoop.ParquetRecordReader: Can not initialize counter due to context is not a instance of TaskInputOutp
[Stage 12:=================================================> (184 + 4) / 200]
谢谢要关闭除错误以外的所有消息,您应该编辑conf/log4j.properties文件,更改以下行:
log4j.rootCategory=INFO, console
进入
希望能有帮助 我认为这是倒退的——他们正在对拼花地板集成进行一些大的合并/更改…不是解决方案,但如果您建立自己的spark,则此文件: 具有最多代的日志消息,您现在可以对其进行注释。的解决方案似乎有效: 通过创建包含以下内容的属性文件,可以禁用聊天输出: 然后在应用程序启动时将文件的路径传递给Spark 提交。假设文件位于/tmp/parquet.logging.properties中 (当然,这需要在所有工作节点上都可用):
学分转到。这将适用于Spark 2.0。编辑文件spark/log4j.properties并添加:
log4j.logger.org.apache.spark.sql.execution.datasources.parquet=ERROR
log4j.logger.org.apache.spark.sql.execution.datasources.FileScanRDD=ERROR
log4j.logger.org.apache.hadoop.io.compress.CodecPool=ERROR
FileScanRDD和CodecPool的行也将有助于处理一些非常详细的日志。我知道这个问题是由Spark提出的,但我最近在CDH 5.x中将Parquet与Hive一起使用时遇到了这个问题,并找到了解决办法。详情如下: 我对JIRA的评论内容如下: 这也是CDH中分发的拼花地板版本中的一个问题 5.x。在这种情况下,我使用的是
parquet-1.5.0-cdh5.8.4
(此处提供的来源:)
然而,我已经找到了通过提交mapreduce作业的解决方案
蜂箱我相信这也可以用于Spark
- 将以下属性添加到作业的配置中(在我的例子中,自从将它们添加到之后,我将它们添加到了
)hive site.xml
不起作用:mapred site.xml
<property>
<name>mapreduce.map.java.opts</name>
<value>-Djava.util.logging.config.file=parquet-logging.properties</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Djava.util.logging.config.file=parquet-logging.properties</value>
</property>
<property>
<name>mapreduce.child.java.opts</name>
<value>-Djava.util.logging.config.file=parquet-logging.properties</value>
</property>
# Note: I'm certain not every line here is necessary. I just added them to cover all possible
# class/facility names.you will want to tailor this as per your needs.
.level=WARNING
java.util.logging.ConsoleHandler.level=WARNING
parquet.handlers=java.util.logging.ConsoleHandler
parquet.hadoop.handlers=java.util.logging.ConsoleHandler
org.apache.parquet.handlers=java.util.logging.ConsoleHandler
org.apache.parquet.hadoop.handlers=java.util.logging.ConsoleHandler
parquet.level=WARNING
parquet.hadoop.level=WARNING
org.apache.parquet.level=WARNING
org.apache.parquet.hadoop.level=WARNING
- 将文件添加到作业中。在配置单元中,这样做最容易: ADD FILE /path/to/parquet-logging.properties; 添加文件/path/to/parquet-logging.properties
<property>
<name>mapreduce.map.java.opts</name>
<value>-Djava.util.logging.config.file=parquet-logging.properties</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Djava.util.logging.config.file=parquet-logging.properties</value>
</property>
<property>
<name>mapreduce.child.java.opts</name>
<value>-Djava.util.logging.config.file=parquet-logging.properties</value>
</property>
# Note: I'm certain not every line here is necessary. I just added them to cover all possible
# class/facility names.you will want to tailor this as per your needs.
.level=WARNING
java.util.logging.ConsoleHandler.level=WARNING
parquet.handlers=java.util.logging.ConsoleHandler
parquet.hadoop.handlers=java.util.logging.ConsoleHandler
org.apache.parquet.handlers=java.util.logging.ConsoleHandler
org.apache.parquet.hadoop.handlers=java.util.logging.ConsoleHandler
parquet.level=WARNING
parquet.hadoop.level=WARNING
org.apache.parquet.level=WARNING
org.apache.parquet.hadoop.level=WARNING
完成此操作后,当您运行配置单元查询时,拼花地板只应
将警告(及更高级别)消息记录到标准输出容器日志
你是指所有来自拼花地板的信息,还是仅仅是信息(似乎占大多数)?@Panto除了错误,其他都是。你能在conf/log4j.properties中更改日志级别,看看发生了什么吗?@YijieShen我仍然收到消息。似乎它在那里不受控制。我会亲自尝试,并在成功时告诉你。这实际上对spark的log4j日志有效,但对这些日志无效。这些拼花地板日志似乎是由某个人制作的ng else?log4j.rootCategory不会影响它们。感谢您重新打开此问题。在我将org.apache.parquet.hadoop.handlers=java.util.logging.ConsoleHandler行添加到属性文件后,这对我来说很有效。 ADD FILE /path/to/parquet-logging.properties;