在 Linux 环境下监控 HDFS(Hadoop Distributed File System),可以从命令行工具、Web UI、日志、指标系统(JMX/Metrics)、第三方监控几个层面来做。下面按实用程度系统说明。
hdfs dfsadmin查看集群整体状态:
hdfs dfsadmin -report
输出内容包括:
其他常用:
hdfs dfsadmin -safemode get # 安全模式状态
hdfs dfsadmin -metasave file # 元数据信息
hdfs fsck检查文件系统和块状态:
hdfs fsck / -files -blocks -locations
常见关注点:
快速检查:
hdfs fsck / -list-corruptfileblocks
hdfs dfs查看目录、文件情况:
hdfs dfs -du -h /
hdfs dfs -ls /
默认端口:
500709870地址:
http://namenode-host:9870
可查看:
http://rm-host:8088
$HADOOP_HOME/logs/
重点文件:
hadoop-*-namenode-*.loghadoop-*-datanode-*.loghadoop-*-resourcemanager-*.log实时监控:
tail -f $HADOOP_HOME/logs/hadoop-*-namenode-*.log
常用关键词:
NameNode 默认暴露:
http://namenode-host:9870/jmx
可获取指标:
Hadoop:service=NameNode,name=FSNamesystemMissingBlocksUnderReplicatedBlocksCapacityUsed配置文件:
$HADOOP_HOME/etc/hadoop/hadoop-metrics2.properties
可输出到:
HDFS → JMX Exporter → Prometheus → Grafana
jmx_exporterhadoop-env.shexport HADOOP_NAMENODE_OPTS="-javaagent:/path/jmx_prometheus.jar=7070:config.yaml"
jps
应看到:
top
iostat -x 1
df -h
| 指标 | 说明 |
|---|---|
| MissingBlocks | 必须为 0 |
| UnderReplicatedBlocks | 持续 > 0 需关注 |
| Dead DataNode | 不应出现 |
| CapacityUsed % | 建议 < 80% |
| GC 时间 | NameNode 不能过长 |
如果你愿意,我可以:
你现在是 测试环境还是生产环境?用的是 Hadoop 2 还是 3?