2012-01-23 21 views
6

He intentado varias formas de configurar el nivel de registro en Hadoop a WARN, pero he fallado cada vez. En primer lugar, traté de configurar el archivo log4j.properties simplemente reemplazando "INFO" con "WARN" en todas partes. Sin resultados.Configuración del nivel de registro en Hadoop a WARN

A continuación, trató de dar comandos UNIX Hadoop (de acuerdo con http://hadoop.apache.org/common/docs/current/commands_manual.html#daemonlog):

$ hadoop daemonlog -setlevel

¿Es posible que uno realmente tiene que modificar el código fuente para hacer que funcione? El registro es a menudo bastante simple de controlar, en la mayoría de los casos un pequeño ajuste de las propiedades de registro usualmente lo hace ...

+0

Por "en todas partes" ¿qué quiere decir? ¿Estás diciendo que usar 'log4j.logger.org.apache.hadoop = WARN' no hace lo que quieres? También sería cauteloso de aumentar el nivel a 'WARN' a menos que estés seguro de que todo siempre funciona. –

+1

Por ejemplo, mi archivo log4j.properties ahora incluye las siguientes líneas: log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit = WARN hadoop.metrics.log.level = WARN log4j.logger. org.apache.hadoop.mapred.JobTracker = WARN log4j.logger.org.apache.hadoop.mapred.TaskTracker = WARN log4j.logger.org.apache.hadoop.fs.FSNamesystem = WARN log4j.logger.org.apache.hadoop.metrics2 = $ {hadoop.metrics.log.level} – chebychev2000

Respuesta

2

El nivel predeterminado de registro se puede ajustar modificando la propiedad hadoop.root.logger en su archivo de configuración conf/log4j.properties. Tenga en cuenta que tendrá que hacer eso para cada nodo en su clúster.

línea Ejemplo en conf/log4j.properties:

hadoop.root.logger=WARN,console 
+0

y los nodos también deben reiniciarse después de que la configuración cambie ... – yair

4

I en lugar utilizo

HADOOP_ROOT_LOGGER = WARN, DRFA

en hadoop-env.sh

o puede utilizar hadoop.root.logger en log4j.properties

DRFA permitirá que los registros entren en el Anexador de archivos en lugar de en la consola -> System.err/out.

+0

para usar con el hadoop cli uno puede habilitar el nivel de registro para esa sesión por: {code} exportar HADOOP_ROOT_LOGGER = DEPURAR, consola hadoop fs -ls/ {code} – selle

2

La documentación de Apache hadoop es un poco engañosa. Si está solucionando problemas, puede cambiar el nivel de registro sobre la marcha siguiendo los pasos a continuación. Debe mencionar el nombre del paquete en lugar del nombre del archivo.

Ejemplo: Para NameNode: hadoop daemonlog -setlevel LXV-centos-01: 50070 org.apache.hadoop.hdfs.server.namenode DEBUG

Para hilo ResourceManager daemonlog -setlevel LXV-centos-01: 8088 org .apache.hadoop.yarn.server.resourcemanager DEBUG

La configuración anterior desaparece cuando reinicia los procesos. Esta es una solución temporal para problemas de depuración.

1

Para cambiar los niveles de registro dinámicamente, de modo que no se requiera el reinicio del daemon, use la utilidad hadoop daemonlog.

hadoop daemonlog -setlevel hostname:port className logLevel 

Por ejemplo, para cambiar el nivel de registro de los registros de datanode a WARN.

hadoop daemonlog -setlevel hostname:50075 org.apache.hadoop.hdfs.server.datanode.DataNode WARN 
Cuestiones relacionadas