You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.3 KiB
43 lines
1.3 KiB
1 year ago
|
#!/bin/bash
|
||
|
HIVE_LOG_DIR=$HIVE_HOME/logs
|
||
|
|
||
|
mkdir -p $HIVE_LOG_DIR
|
||
|
|
||
|
#检查进程是否运行正常,参数1为进程名,参数2为进程端口
|
||
|
function check_process()
|
||
|
{
|
||
|
pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print $2}')
|
||
|
ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}' | cut -d '/' -f 1)
|
||
|
echo $pid
|
||
|
[[ "$pid" =~ "$ppid" ]] && [ "$ppid" ] && return 0 || return 1
|
||
|
}
|
||
|
|
||
|
function hive_start()
|
||
|
{
|
||
|
metapid=$(check_process HiveMetastore 9083)
|
||
|
cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &"
|
||
|
cmd=$cmd" sleep 4; hdfs dfsadmin -safemode wait >/dev/null 2>&1"
|
||
|
[ -z "$metapid" ] && eval $cmd || echo "Metastroe服务已启动"
|
||
|
server2pid=$(check_process HiveServer2 10000)
|
||
|
cmd="nohup hive --service hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"
|
||
|
[ -z "$server2pid" ] && eval $cmd || echo "HiveServer2服务已启动"
|
||
|
}
|
||
|
|
||
|
function hive_stop()
|
||
|
{
|
||
|
metapid=$(check_process HiveMetastore 9083)
|
||
|
[ "$metapid" ] && kill $metapid || echo "Metastore服务未启动"
|
||
|
server2pid=$(check_process HiveServer2 10000)
|
||
|
[ "$server2pid" ] && kill $server2pid || echo "HiveServer2服务未启动"
|
||
|
}
|
||
|
|
||
|
case $1 in
|
||
|
"start")
|
||
|
hive_start
|
||
|
;;
|
||
|
"stop")
|
||
|
hive_stop
|
||
|
;;
|
||
|
"restart")
|
||
|
hive_stop
|
||
|
esac
|