log4j - paradas - movi rosario cuando llega
Cómo suprimir mensajes INFO para spark-sql ejecutándose en EMR? (3)
Pude hacer esto editando $HOME/spark/conf/log4j.properties
según lo deseado, y llamando a spark-sql
con --driver-java-options
siguiente manera:
./spark/bin/spark-sql --driver-java-options "-Dlog4j.configuration=file:///home/hadoop/spark/conf/log4j.properties"
Pude verificar que se estaba usando el archivo correcto agregando -Dlog4j.debug
a las opciones:
./spark/bin/spark-sql --driver-java-options "-Dlog4j.debug -Dlog4j.configuration=file:///home/hadoop/spark/conf/log4j.properties"
Estoy ejecutando Spark en EMR como se describe en Run Spark y Spark SQL en Amazon Elastic MapReduce :
Este tutorial le guiará en la instalación y el funcionamiento de Spark, un motor rápido y general para el procesamiento de datos a gran escala, en un clúster de Amazon EMR. También creará y consultará un conjunto de datos en Amazon S3 utilizando Spark SQL, y aprenderá cómo monitorear Spark en un clúster de Amazon EMR con Amazon CloudWatch.
Estoy intentando suprimir los registros INFO
editando $HOME/spark/conf/log4j.properties
inútilmente.
La salida se ve así:
$ ./spark/bin/spark-sql
Spark assembly has been built with Hive, including Datanucleus jars on classpath
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/.versions/2.4.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/.versions/spark-1.1.1.e/lib/spark-assembly-1.1.1-hadoop2.4.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2014-12-14 20:59:01,819 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(1009)) - mapred.input.dir.recursive is deprecated. Instead, use mapreduce.input.fileinputformat.input.dir.recursive
2014-12-14 20:59:01,825 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(1009)) - mapred.max.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.maxsize
2014-12-14 20:59:01,825 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(1009)) - mapred.min.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize
2014-12-14 20:59:01,825 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(1009)) - mapred.min.split.size.per.rack is deprecated. Instead, use mapreduce.input.fileinputformat.split.minsize.per.rack
Cómo suprimir los mensajes INFO arriba?
spark-sql --driver-java-options "-Dlog4j.configuration = file: ///home/hadoop/conf/log4j.properties"
cat conf/log4j.properties
# Set everything to be logged to the console
log4j.rootCategory=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
# Settings to quiet third party logs that are too verbose
log4j.logger.org.eclipse.jetty=WARN
log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=WARN
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=WARN
También puede agregar la opción de configuración en la creación del clúster, si sabe que desea suprimir el registro de un nuevo clúster de EMR.
EMR acepta opciones de configuración como JSON, que puede ingresar directamente en la consola de AWS o pasar a través de un archivo al usar la CLI.
En este caso, para cambiar el nivel de registro a WARN
, aquí está el JSON:
[
{
"classification": "spark-log4j",
"properties": {"log4j.rootCategory": "WARN, console"}
}
]
En la consola, debe agregar esto en el primer paso de creación:
O si está creando el clúster utilizando la CLI:
aws emr create-cluster <options here> --configurations config_file.json
Puede leer más en la documentación de EMR .