Как подавить сообщения журнала паркета в Spark?

Как остановить такие сообщения от моей консоли с искровой оболочкой.

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]

Спасибо

Ответы

Ответ 1

Решение из комментарий к выпуску SPARK-8118 работает:

Вы можете отключить вывод чата, создав файл свойств с этим содержимым:

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.

Ответ 2

Я считаю, что это регрессировало - есть некоторые большие слияния/изменения, которые они вносят в интеграцию паркета... https://issues.apache.org/jira/browse/SPARK-4412

Ответ 3

Это будет работать для 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 помогут с несколькими журналами, которые также очень многословны.

Ответ 4

Чтобы отключить все сообщения, кроме ERROR, вы редактируете файл conf/log4j.properties, изменяя следующую строку:

log4j.rootCategory=INFO, console

в

log4j.rootCategory=ERROR, console

Надеюсь, это поможет!

Ответ 6

Я знаю, что этот вопрос был WRT Spark, но я недавно столкнулся с этой проблемой при использовании Parquet with Hive в CDH 5.x и нашел обход. Подробности здесь: 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
  • Добавьте файл в задание. В Улье это проще всего сделать так:
    ADD FILE /path/to/parquet-logging.properties;

При этом, когда вы запускаете свои запросы на улей, паркет должен log WARNING (и выше) в журналы контейнеров stdout.