10.2.2 监控日志

所有Hadoop守护进程都会产生一个日志文件,这对管理员来说非常重要。下面我们就介绍如何使用这些日志文件。

1.设置日志级别

当进行故障调试排除时,很有必要临时调整日志的级别,以获得系统不同类型的信息。log4j日志一般包含这样几个级别:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或用户自定义的级别。

Hadoop守护进程有一个网络页面可以用来调整任何log4j日志的级别,在守护进程的网络UI后附后缀/logLevel即可访问该网络页面。按照规定,日志的名称和它所对应的执行日志记录的类名是一样的,可以通过查找源代码找到日志名称。例如,为了调试JobTracker类的日志,可以访问JobTracker的网络UI:http://jobtracker-host:50030/logLevel,同时设置日志名称org.apache.hadoop.mapred.JobTracker到层级DEBUG。当然也可以通过命令行进行调整,代码如下:


hadoop daemonlog-setlevel jobtracker-host:50030\

org.apache.hadoop.mapred.JobTracker DEBUG


通过命令行修改的日志级别会在守护进程重启时被重置,如果想要持久化地改变日志级别,那么只要改变log4j.properties文件内容即可。我们可以在文件中加入以下行:


log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG


2.获取堆栈信息

有关系统的堆栈信息,Hadoop守护进程提供了一个网络页面(在网络UI后附后缀/stacks才可以访问),该网络页面可以为管理员提供所有守护进程JVM中运行的线程信息。可以通过以下链接访问该网络页面:http://jobtracker-host:50030/stacks。