如何阻止此类消息进入我的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 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]
由于
答案 0 :(得分:5)
来自SPARK-8118 issue comment的解决方案似乎有效:
您可以通过创建包含以下内容的属性文件来禁用聊天输出:
org.apache.parquet.handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=SEVERE
然后在应用程序运行时将文件的路径传递给Spark 提交。假设该文件位于/tmp/parquet.logging.properties中 (当然,这需要在所有工作节点上都可用):
spark-submit \
--conf spark.driver.extraJavaOptions="-Djava.util.logging.config.file=/tmp/parquet.logging.properties" \`
--conf spark.executor.extraJavaOptions="-Djava.util.logging.config.file=/tmp/parquet.logging.properties" \
...
积分转到Justin Bailey。
答案 1 :(得分:3)
我相信这种情况已经退步了 - 他们正在为镶木地板整合进行一些大的合并/改变...... https://issues.apache.org/jira/browse/SPARK-4412
答案 2 :(得分:2)
这适用于Spark 2.0。编辑文件spark / log4j.properties并添加:
20:00:00
FileScanRDD和CodecPool的行将有助于处理一些非常冗长的日志。
答案 3 :(得分:1)
我知道这个问题是WRT Spark,但是我最近在CDH 5.x中使用Parquet with Hive时遇到了这个问题并找到了解决办法。详细信息如下:https://issues.apache.org/jira/browse/SPARK-4412?focusedCommentId=16118403
我在下面的JIRA票证中发表评论的内容:
这也是CDH中分发的镶木地板版本中的一个问题 5.x的在这种情况下,我使用
parquet-1.5.0-cdh5.8.4
(此处提供的来源:http://archive.cloudera.com/cdh5/cdh/5)但是,我找到了通过提交的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>
- 使用以下内容创建名为
parquet-logging.properties
的文件:
# 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
- 将文件添加到作业中。在Hive中,这样做最容易:
ADD FILE /path/to/parquet-logging.properties;完成此操作后,当您运行Hive查询时,仅应该使用镶木地板 将警告(和更高级别)消息记录到stdout容器日志。
答案 4 :(得分:0)
要关闭除ERROR之外的所有消息,您需要编辑conf / log4j.properties文件,更改以下行:
activateTab()
到
$scope.activateTab = function(tab) {
$scope.active = {}; //reset
$scope.active[tab] = true;
}
希望它可以提供帮助!
答案 5 :(得分:0)
不是解决方案,但如果你建立自己的火花,那么这个文件:https://github.com/Parquet/parquet-mr/blob/master/parquet-hadoop/src/main/java/parquet/hadoop/ParquetFileReader.java 拥有大多数日志消息,您现在可以注释掉它们。