logging apache-spark parquet

logging - ¿Cómo suprimir los mensajes de registro de parquet en Spark?



apache-spark (6)

Cómo evitar que esos mensajes lleguen a mi consola de shell de chispa

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]

Gracias



Esto funcionará para Spark 2.0. Edite el archivo spark / log4j.properties y agregue:

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

Las líneas para FileScanRDD y CodecPool ayudarán con un par de registros que también son muy detallados.


La solución del comentario del problema SPARK-8118 parece funcionar:

Puede deshabilitar la salida de chat al crear un archivo de propiedades con estos contenidos:

org.apache.parquet.handlers=java.util.logging.ConsoleHandler java.util.logging.ConsoleHandler.level=SEVERE

Y luego pasar la ruta del archivo a Spark cuando se envía la solicitud. Suponiendo que el archivo se encuentre en /tmp/parquet.logging.properties (por supuesto, que debe estar disponible en todos los nodos de trabajo):

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" / ...

Los créditos van para Justin Bailey .


Para desactivar todos los mensajes excepto ERROR, debe editar su archivo conf / log4j.properties cambiando la siguiente línea:

log4j.rootCategory=INFO, console

dentro

log4j.rootCategory=ERROR, console

Espero que pueda ayudar!


Sé que esta pregunta era WRT Spark, pero recientemente tuve este problema al usar Parquet con Hive en CDH 5.x y encontré una solución alternativa. Los detalles están aquí: https://issues.apache.org/jira/browse/SPARK-4412?focusedCommentId=16118403

Contenido de mi comentario de ese boleto de JIRA a continuación:

Esto también es un problema en la versión de parquet distribuido en CDH 5.x. En este caso, estoy usando parquet-1.5.0-cdh5.8.4 (fuentes disponibles aquí: http://archive.cloudera.com/cdh5/cdh/5 )

Sin embargo, he encontrado una solución para los trabajos de mapreduce enviados a través de Hive. Estoy seguro de que esto también puede adaptarse para su uso con Spark.

  • Agregue las siguientes propiedades a la configuración de su trabajo (en mi caso, las agregué a hive-site.xml desde que agregarlas a mapred-site.xml no funcionó:

<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>

  • Cree un archivo llamado parquet-logging.properties con el siguiente contenido:

# 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

  • Agregue el archivo al trabajo. En Hive, esto se hace más fácilmente así:

    ADD FILE /path/to/parquet-logging.properties;

Una vez hecho esto, cuando ejecute sus consultas de Hive, el parquet solo debe registrar mensajes de nivel de ADVERTENCIA (y más alto) en los registros del contenedor de la salida estándar.