Acceldata
ODP

Setting Hadoop Service Log Levels at Runtime

You can dynamically change the log levels of Hadoop services (such as YARN and HDFS) using the hadoop daemonlog command without needing to restart the services.

Key Notes

  1. Ports: Replace <host:port> with the admin/HTTP port of the service (not the web UI port).
  2. Class Names: Use the fully qualified class name of the service’s main class (e.g., org.apache.hadoop.yarn.server.resourcemanager.ResourceManager).
  3. Log Levels: Supported levels: TRACE, DEBUG, INFO, WARN, ERROR, FATAL.
  4. Ensure that the mentioned commands on this page are executed by the user running the respective process. For NameNode-related operations, specifically use the NN service keytab and the hdfs user to initialize the Kerberos token before running the command.
  5. Persistence: Changes are temporary and reset after service restart. For permanent changes, modify log4j.properties and restart the service.

YARN Services

Resource Manager

  • Get Current Log Level
hadoop daemonlog -getlevel <resourcemanager_host>:8088 \\
org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
The example output is as follows.
Connecting to <http://rm-host:8088/logLevel?log=org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
Submitted Class Name: org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
Log Class: org.apache.commons.logging.impl.Log4JLogger
Effective Level: INFO
  • Set Log Level to Debug
hadoop daemonlog -setlevel <resourcemanager_host>:8088 \\
org.apache.hadoop.yarn.server.resourcemanager.ResourceManager DEBUG
The example output is as follows.
Connecting to http://rm-host:8088/logLevel?log=org.apache.hadoop.yarn.server.resourcemanager.ResourceManager&level=DEBUG
Submitted Class Name: org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
Log Class: org.apache.commons.logging.impl.Log4JLogger
Submitted Level: DEBUG
Setting Level to DEBUG ...
Effective Level: DEBUG

Node Manager

  • Get Current Log Level
hadoop daemonlog -getlevel <nodemanager_host>:8042 \\
org.apache.hadoop.yarn.server.nodemanager.NodeManager
The example output is as follows.
Connecting to http://trial04.acceldata.dvl:8042/logLevel?log=org.apache.hadoop.yarn.server.nodemanager.NodeManager
Submitted Class Name: org.apache.hadoop.yarn.server.nodemanager.NodeManager
Log Class: org.apache.commons.logging
  • Set Log Level to WARN
hadoop daemonlog -setlevel <nodemanager_host>:8042 \\
org.apache.hadoop.yarn.server.nodemanager.NodeManager WARN
The example output is as follows.
Connecting to http://NM-Host:8042/logLevel?log=org.apache.hadoop.yarn.server.nodemanager.NodeManager&level=WARN
Submitted Class Name: org.apache.hadoop.yarn.server.nodemanager.NodeManager
Log Class: org.apache.commons.logging.impl.Log4JLogger
Submitted Level: WARN
Setting Level to WARN ...
Effective Level: WARN

HDFS Services

NameNode

  • Get Log Level
hadoop daemonlog -getlevel <namenode_host>:50070 \\
org.apache.hadoop.hdfs.server.namenode.NameNode
The example output is as follows.
Connecting to http://NN-HOST:50070/logLevel?log=org.apache.hadoop.hdfs.server.namenode.NameNode
Submitted Class Name: org.apache.hadoop.hdfs.server.namenode.NameNode
Log Class: org.apache.commons.logging.impl.Log4JLogger
Effective Level: INFO
  • Set Log Level to Error
hadoop daemonlog -setlevel <namenode_host>:50070 \\
org.apache.hadoop.hdfs.server.namenode.NameNode ERROR
The example output is as follows.
Connecting to http://NN-HOST:50070/logLevel?log=org.apache.hadoop.hdfs.server.namenode.NameNode&level=ERROR
Submitted Class Name: org.apache.hadoop.hdfs.server.namenode.NameNode
Log Class: org.apache.commons.logging.impl.Log4JLogger
Submitted Level: ERROR
Setting Level to ERROR ...
Effective Level: ERROR

DataNode

  • Get Log Level
hadoop daemonlog -getlevel <datanode_host>:50075 \\
org.apache.hadoop.hdfs.server.datanode.DataNode
The example output is as follows.
Connecting to http://DN-HOST:50075/logLevel?log=org.apache.hadoop.hdfs.server.datanode.DataNode
Submitted Class Name: org.apache.hadoop.hdfs.server.datanode.DataNode
Log Class: org.apache.commons.logging.impl.Log4JLogger
Effective Level: INFO
  • Set Log Level to Debug
hadoop daemonlog -setlevel <datanode_host>:50075 \\
org.apache.hadoop.hdfs.server.datanode.DataNode DEBUG
The example output is as follows.
Connecting to http://DN-HOST:50075/logLevel?log=org.apache.hadoop.hdfs.server.datanode.DataNode&level=DEBUG
Submitted Class Name: org.apache.hadoop.hdfs.server.datanode.DataNode
Log Class: org.apache.commons.logging.impl.Log4JLogger
Submitted Level: DEBUG
Setting Level to DEBUG ...
Effective Level: DEBUG

Other Services

MapReduce JobHistory Server

  • Set Log Level
hadoop daemonlog -setlevel <historyserver_host>:19888 \\
org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer DEBUG
The example output is as follows.
Connecting to http://MR-HOST:19888/logLevel?log=org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer&level=DEBUG
Submitted Class Name: org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer
Log Class: org.apache.commons.logging.impl.Log4JLogger
Submitted Level: DEBUG
Setting Level to DEBUG ...
Effective Level: DEBUG

Timeline Server

  • Set Log Level
hadoop daemonlog -setlevel <timelineserver_host>:8188 \\
org.apache.hadoop.yarn.server.timelineservice.reader.TimelineReaderServer WARN
The example output is as follows.
Connecting to http://Timeline-Host:8188/logLevel?log=org.apache.hadoop.yarn.server.timelineservice.reader.TimelineReaderServer&level=WARN
Submitted Class Name: org.apache.hadoop.yarn.server.timelineservice.reader.TimelineReaderServer
Log Class: org.apache.commons.logging.impl.Log4JLogger
Submitted Level: WARN
Setting Level to WARN ...
Effective Level: WARN

Verification

  • Check logs in real-time
tail -f /var/log/hadoop-yarn/yarn-*-resourcemanager-*.log
  • Confirm log level updates
hadoop daemonlog -getlevel <host:port> <classname>

Example Summary

Service

Command (Set to Debug)

ResourceManager

hadoop daemonlog -setlevel rm-host:8088 org.apache.hadoop.yarn.server.resourcemanager.ResourceManager DEBUG

NodeManager

hadoop daemonlog -setlevel nm-host:8042 org.apache.hadoop.yarn.server.nodemanager.NodeManager DEBUG

NameNode

hadoop daemonlog -setlevel nn-host:9870 org.apache.hadoop.hdfs.server.namenode.NameNode DEBUG

For HTTPS clusters, add -protocol https to the command.