在CentOS系统中,可以通过以下基础命令监控HDFS状态:
# 检查HDFS整体状态
hdfs dfsadmin -report
# 查看HDFS存储空间使用情况
hdfs dfs -df -h
# 检查NameNode状态
hdfs haadmin -getServiceState nn1
# 查看DataNode节点状态
hdfs dfsadmin -report | grep -i "datanodes"
HDFS提供了直观的Web监控界面:
如果使用Ambari管理Hadoop集群:
配置Ganglia监控HDFS指标:
# 安装Ganglia监控组件
yum install ganglia-gmond ganglia-gmetad
# 配置Hadoop metrics输出到Ganglia
在hadoop-metrics2.properties中添加:
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
示例Python监控脚本:
#!/usr/bin/python
import subprocess
def check_hdfs():
try:
status = subprocess.check_output(['hdfs', 'dfsadmin', '-report'])
return "HDFS Status OK" if "Live datanodes" in status else "HDFS Error"
except Exception as e:
return "Monitoring failed: " + str(e)