1,脚本编辑如下:
#!/bin/bash
function GetHome #
{
PRG="$0"
## echo $PRG
else
}
APP_HOME=`GetHome`
cd $APP_HOME
spaceLog=$APP_HOME/logs/spaceLog.log
rptime=`date "+%Y-%m-%d %H:%M:%S"`
echo "日期:$rptime" > $spaceLog
#hadoop dfsadmin -report|awk '$0 ~/^DFS Used|^DFS Remaining|^Present Capacity|-------|Hostname:|^$/ {print $0}' >> $spaceLog
#content=`ssh namenode1 hadoop dfsadmin -report|awk '$0 ~/^DFS Used|^DFS Remaining|^Present Capacity|-------|Hostname:|^$/ {print $0}'`
#export HADOOP_HOME=/opt/hadoop/
export PATH=/usr/local/jdk1.7.0_51/bin:/usr/lib64/qt-3.3/bin:/usr/local/jdk1.7.0_51/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/jdk1.7.0_51/bin:/opt/hadoop/bin:/opt/hadoop/bin:/opt/hive/hive-0.10.0-cdh4.5.0/bin:/opt/sqoop/bin:/usr/local/mysql/bin:/usr/local/apache-maven-3.2.1/bin:/home/fone/bin:/usr/local/jdk1.7.0_51/bin:/opt/hadoop/bin
content=`hadoop dfsadmin -report|awk '$0 ~/^DFS Used|^DFS Remaining|^Present Capacity|-------|Hostname:|^$/ {print $0}'`
echo "$content" >> $spaceLog
sed -i 's/Hostname/主机名/g' $spaceLog
sed -i 's/Present Capacity/集群中hdfs总容量/g' $spaceLog
sed -i 's/DFS Remaining/未使用/g' $spaceLog
sed -i 's/DFS Used/已使用/g' $spaceLog
RECEIVERS="cyxinda@163.com 51524536@qq.com"
export LANG=zh_CN.UTF-8
mailx -s "the usage of hdfs.." $RECEIVERS < $spaceLog -- -f mon.tom-ora@fone.net.cn
> $spaceLog
2:发出邮件如下:
日期:2014-07-24 10:44:57 集群中hdfs总容量: 64794155166309 (58.93 TB) 未使用: 19718267957248 (17.93 TB) 已使用: 45075887209061 (41.00 TB) 已使用%: 69.57% ------------------------------------------------- 主机名: datanode5 已使用: 9045726568687 (8.23 TB) 未使用: 3910403710976 (3.56 TB) 已使用%: 65.63% 未使用%: 28.37% 主机名: datanode6 已使用: 8951296760826 (8.14 TB) 未使用: 3892333912064 (3.54 TB) 已使用%: 64.94% 未使用%: 28.24% 主机名: datanode7 已使用: 9116028252817 (8.29 TB) 未使用: 3889245736960 (3.54 TB) 已使用%: 66.14% 未使用%: 28.22% 主机名: datanode4 已使用: 9072893591882 (8.25 TB) 未使用: 3920266530816 (3.57 TB) 已使用%: 65.83% 未使用%: 28.44% 主机名: datanode1 已使用: 8889942034849 (8.09 TB) 未使用: 4106018066432 (3.73 TB) 已使用%: 64.50% 未使用%: 29.79%
本文介绍了一个用于监控HDFS集群容量并发送监控报告到指定邮箱的Shell脚本。该脚本通过Hadoop的dfsadmin命令获取集群的使用情况,并使用awk进行数据筛选和格式化,最终将结果写入日志文件并通过mailx发送邮件。
1521

被折叠的 条评论
为什么被折叠?



