JobTracker健康监控测试作业

       为了监控集群JobTracker的健康状态,一般会定时运行一个测试作业,当然这个测试作业数据量不能太大,而且这个作业运行时间不能太长,以下就是我们用于监控集群JobTracker是否能高效提供服务的脚本,由于shell没有提供超时的机制,只能自己去实现,具体脚本如下:
#!/bin/bash

HADOOP_EXE="/opt/sohuhadoop/hadoop/bin"
zabbix_ip="**.**.**.**"
maillist="****@sohu-inc.com"
mobilelist="******"
#10分钟运行不完,短信报警
TIMEOUT=600

#打印日志函数
function log(){
    echo `date +"[%F %T]"` "$*"
}
#短信报警函数
function sendSms(){
   log "job run exceed $TIMEOUT"
   ssh $zabbix_ip "sh /opt/apps/zabbix/sbin/sendsms.sh ${mobilelist} \"test job running exceed $TIMEOUT\""
}
#超时函数
function timeout(){
    waitfor=$1
    shift
    command=$*
    $command &
    commandpid=$!
    ( sleep $waitfor ;  sendSms ) &
    watchdog=$!
    sleeppid=$PPID
    wait $commandpid > /dev/null 2>&1
    kill  -9 $watchdog > /dev/null 2>&1
    kill $sleeppid > /dev/null 2>&1

}
#提交作业函数
function submitjob(){
   INPUT="/user/hadoopmc/test/input"
   OUTPUT="/user/hadoopmc/test/output"
   JAR=`find /opt/sohuhadoop/ -name *example*.jar`
   log "hadoop fs -rmr $OUTPUT"
   su - hadoopmc -c "hadoop fs -rmr $OUTPUT"
   log "submit job to test cluster health!"
   su - hadoopmc -c "hadoop jar $JAR wordcount $INPUT $OUTPUT"
   log "job running end!"
}
#提交作业,并检查作业是否超时,超时则报警
timeout $TIMEOUT submitjob

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值