10.2 Hadoop的状态监视和管理工具
对一个系统运维的管理员来说,进行系统监控是必须的。监控的目的是了解系统何时出现问题,并找到问题出在哪里,从而做出相应的处理。管理守护进程对监控NameNode、DataNode和JobTracker是非常重要的。在实际运行中,因为DataNode及TaskTracker的故障可能随时出现,所以集群需要提供额外的功能以应对少部分节点出现的故障。管理员也要隔一段时间执行一些监测任务,以获知当前集群的运行状态。本节将详细介绍Hadoop如何实现系统监控。
10.2.1 审计日志
HDFS通过审计日志可以实现记录文件系统所有文件访问请求的功能,其审计日志功能通过log4j实现,但是在默认配置下这个功能是关闭的:log的记录等级在log4j.properties中被设置为WARN:
log4j.logger.org.apache.hadoop.fs.FSNamesystem.audit=WARN
在此处将WARN修改为INFO,便可打开审计日志功能。这样在每个HDFS事件之后,系统都会在NameNode的log文件中写入一行记录。下面是一个请求/usr/hadoop文件的例子:
2010-03-13 07:11:22,982 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit:
ugi=admin, staff, admin ip=/127.0.0.1 cmd=listStatus src=/user/admin=null
perm=null
关于log4j还有很多其他配置可改,比如可以将审计日志从NameNode的日志文件中分离出来等。具体操作可查看Hadoop的Wiki:http://wiki.apache.org/hadoop/HowToConfigure。