HDFS主从切换预警
自定义shell脚本
1#!/bin/bash
2#定义空变量
3NN1_HOSTNAME=""
4NN2_HOSTNAME=""
5NN1_SERVICEID=""
6NN2_SERVICEID=""
7NN1_SERVICESTATE=""
8NN2_SERVICESTATE=""
9
10#设置需要发送邮件的邮箱
11EMAIL=1124009143@qq.com
12
13#配置hadoop命令的目录
14CDH_BIN_HOME=/home/hadoop/app/hadoop/bin
15
16#查看集群的nameservices及namenode_serviceids
17ha_name=$(${CDH_BIN_HOME}/hdfs getconf -confKey dfs.nameservices)
18namenode_serviceids=$(${CDH_BIN_HOME}/hdfs getconf -confKey dfs.ha.namenodes.${ha_name})
19
20#通过for循环,将节点名称赋值到对应的变量中
21for node in $(echo ${namenode_serviceids//,/ }); do
22 state=$(${CDH_BIN_HOME}/hdfs haadmin -getServiceState $node)
23
24#如果节点状态为active,就将节点名称赋值到NN1_SERVICEID,节点状态赋值到NN1_SERVICESTATE,以及对应active节点的主机名NN1_HOSTNAME
25 if [ "$state" == "act