在 Linux 环境下监控 Hadoop 集群状态,通常可以从 Web UI、命令行、日志、JMX、第三方工具 等多个层面进行。下面按常用方式系统说明。
访问 NameNode Web UI:
http://namenode-host:9870
(Hadoop 2.x 是 50070,Hadoop 3.x 默认 9870)
可查看:
访问 ResourceManager Web UI:
http://resourcemanager-host:8088
可查看:
# 查看 HDFS 报告
hdfs dfsadmin -report
# 查看文件系统状态
hdfs fsck / -files -blocks -locations
# 查看节点状态
yarn node -list
# 查看应用
yarn application -list
jps
常见进程:
默认路径:
$HADOOP_HOME/logs/
关键日志:
hadoop-*-namenode-*.loghadoop-*-datanode-*.logyarn-*-resourcemanager-*.logyarn-*-nodemanager-*.logtail -f hadoop-root-namenode-master.log
grep -i error hadoop-root-namenode-*.log
Hadoop 组件暴露 JMX 指标,可用于:
jps -l
访问示例:
http://namenode:9870/jmx
可获取:
top
htop
free -h
df -h
iostat -x 1
iftop
| 类型 | 关键指标 |
|---|---|
| HDFS | 容量使用率、丢失块、Datanode 存活 |
| YARN | 内存/CPU 使用率、Pending App |
| 系统 | CPU、内存、磁盘、网络 |
| JVM | GC、内存泄漏 |
#!/bin/bash
jps | grep -q NameNode || echo "NameNode is down"
hdfs dfsadmin -report | grep "Live datanodes"
如果你愿意,我可以:
你现在用的是 Hadoop 2.x 还是 3.x?单机还是集群?