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
- Ports: Replace
<host:port>with the admin/HTTP port of the service (not the web UI port). - Class Names: Use the fully qualified class name of the service’s main class (e.g.,
org.apache.hadoop.yarn.server.resourcemanager.ResourceManager). - Log Levels: Supported levels:
TRACE,DEBUG,INFO,WARN,ERROR,FATAL. - 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
hdfsuser to initialize the Kerberos token before running the command. - Persistence: Changes are temporary and reset after service restart. For permanent changes, modify
log4j.propertiesand restart the service.
YARN Services
Resource Manager
- Get Current Log Level
hadoop daemonlog -getlevel <resourcemanager_host>:8088 \\ org.apache.hadoop.yarn.server.resourcemanager.ResourceManagerThe example output is as follows.
Connecting to <http://rm-host:8088/logLevel?log=org.apache.hadoop.yarn.server.resourcemanager.ResourceManagerSubmitted Class Name: org.apache.hadoop.yarn.server.resourcemanager.ResourceManagerLog Class: org.apache.commons.logging.impl.Log4JLoggerEffective Level: INFO- Set Log Level to Debug
hadoop daemonlog -setlevel <resourcemanager_host>:8088 \\ org.apache.hadoop.yarn.server.resourcemanager.ResourceManager DEBUGThe example output is as follows.
Connecting to http://rm-host:8088/logLevel?log=org.apache.hadoop.yarn.server.resourcemanager.ResourceManager&level=DEBUGSubmitted Class Name: org.apache.hadoop.yarn.server.resourcemanager.ResourceManagerLog Class: org.apache.commons.logging.impl.Log4JLoggerSubmitted Level: DEBUGSetting Level to DEBUG ...Effective Level: DEBUGNode Manager
- Get Current Log Level
hadoop daemonlog -getlevel <nodemanager_host>:8042 \\ org.apache.hadoop.yarn.server.nodemanager.NodeManagerThe example output is as follows.
Connecting to http://trial04.acceldata.dvl:8042/logLevel?log=org.apache.hadoop.yarn.server.nodemanager.NodeManagerSubmitted Class Name: org.apache.hadoop.yarn.server.nodemanager.NodeManagerLog Class: org.apache.commons.logging- Set Log Level to WARN
hadoop daemonlog -setlevel <nodemanager_host>:8042 \\ org.apache.hadoop.yarn.server.nodemanager.NodeManager WARNThe example output is as follows.
Connecting to http://NM-Host:8042/logLevel?log=org.apache.hadoop.yarn.server.nodemanager.NodeManager&level=WARNSubmitted Class Name: org.apache.hadoop.yarn.server.nodemanager.NodeManagerLog Class: org.apache.commons.logging.impl.Log4JLoggerSubmitted Level: WARNSetting Level to WARN ...Effective Level: WARNHDFS Services
NameNode
- Get Log Level
hadoop daemonlog -getlevel <namenode_host>:50070 \\ org.apache.hadoop.hdfs.server.namenode.NameNodeThe example output is as follows.
Connecting to http://NN-HOST:50070/logLevel?log=org.apache.hadoop.hdfs.server.namenode.NameNodeSubmitted Class Name: org.apache.hadoop.hdfs.server.namenode.NameNodeLog Class: org.apache.commons.logging.impl.Log4JLoggerEffective Level: INFO- Set Log Level to Error
hadoop daemonlog -setlevel <namenode_host>:50070 \\ org.apache.hadoop.hdfs.server.namenode.NameNode ERRORThe example output is as follows.
Connecting to http://NN-HOST:50070/logLevel?log=org.apache.hadoop.hdfs.server.namenode.NameNode&level=ERRORSubmitted Class Name: org.apache.hadoop.hdfs.server.namenode.NameNodeLog Class: org.apache.commons.logging.impl.Log4JLoggerSubmitted Level: ERRORSetting Level to ERROR ...Effective Level: ERRORDataNode
- Get Log Level
hadoop daemonlog -getlevel <datanode_host>:50075 \\ org.apache.hadoop.hdfs.server.datanode.DataNodeThe example output is as follows.
Connecting to http://DN-HOST:50075/logLevel?log=org.apache.hadoop.hdfs.server.datanode.DataNodeSubmitted Class Name: org.apache.hadoop.hdfs.server.datanode.DataNodeLog Class: org.apache.commons.logging.impl.Log4JLoggerEffective Level: INFO- Set Log Level to Debug
hadoop daemonlog -setlevel <datanode_host>:50075 \\ org.apache.hadoop.hdfs.server.datanode.DataNode DEBUGThe example output is as follows.
Connecting to http://DN-HOST:50075/logLevel?log=org.apache.hadoop.hdfs.server.datanode.DataNode&level=DEBUGSubmitted Class Name: org.apache.hadoop.hdfs.server.datanode.DataNodeLog Class: org.apache.commons.logging.impl.Log4JLoggerSubmitted Level: DEBUGSetting Level to DEBUG ...Effective Level: DEBUGOther Services
MapReduce JobHistory Server
- Set Log Level
hadoop daemonlog -setlevel <historyserver_host>:19888 \\ org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer DEBUGThe example output is as follows.
Connecting to http://MR-HOST:19888/logLevel?log=org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer&level=DEBUGSubmitted Class Name: org.apache.hadoop.mapreduce.v2.hs.JobHistoryServerLog Class: org.apache.commons.logging.impl.Log4JLoggerSubmitted Level: DEBUGSetting Level to DEBUG ...Effective Level: DEBUGTimeline Server
- Set Log Level
hadoop daemonlog -setlevel <timelineserver_host>:8188 \\ org.apache.hadoop.yarn.server.timelineservice.reader.TimelineReaderServer WARNThe example output is as follows.
Connecting to http://Timeline-Host:8188/logLevel?log=org.apache.hadoop.yarn.server.timelineservice.reader.TimelineReaderServer&level=WARNSubmitted Class Name: org.apache.hadoop.yarn.server.timelineservice.reader.TimelineReaderServerLog Class: org.apache.commons.logging.impl.Log4JLoggerSubmitted Level: WARNSetting Level to WARN ...Effective Level: WARNVerification
- 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.
Was this page helpful?