最终效果
- 定时检测hive运行状态,进程不存在、进程存在但是不监听端口、线程数超出上限的hiveserver2,自动重新拉起
- 每次检测脚本执行的日志都会保存在log目录下.check文件,每一个月一个文件
- 每月15日,删除2月前的检测日志
- 开启hive自带日志输出后,日志不会删除,且较大,因此一并将过期的hive自带日志清空
注意
每次检测失败后,会自动重启,重启时会先关闭hive进程,重启过程大概2-5分钟左右,因此检测任务定时调度的间隔千万不要小于5分钟,如果配合zookeeper实现多hiveserver2提供服务,间隔可以设置为30分钟
https://blog.csdn.net/Brother_ning/article/details/127993943
从这个作者复制的,但是他的代码好像有点问题,修改后然后加以优化
定时检查脚本
vi $HIVE_HOME/hiveservice.sh
#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/log
CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S")
# 日志清理,如果与hive默认日志命名风格一样,也会自动清理hive的日志
DT=$(date)
DT_2M=$(date -d "2 month ago")
CHECK_LOG=$HIVE_LOG_DIR/hive.log.$(date "+%Y-%m").check
CHECK_LOG_REG&