Hive相关服务启动脚本

该脚本用于启动、停止、重启或检查Hive的Metastore和HiveServer2服务状态。通过调用check_process函数检查进程,并使用nohup启动服务,确保JDBC访问时服务正常运行。启动HiveServer2可能需要较长时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hive相关服务启动脚本

  • 背景

    • 在使用beeline 客户端通过JDBC方式访问Hive时,需要确保metastore以及hiveserver2服务的启动。因此有必要存在一个脚本对此进行管理,提高效率。

    • 脚本如下文所见,可通过start|stop|restart|status四个参数进行服务管理。

      hiveserver2服务启动时间较长,需耐心等待一会再查看启动状态

  • 脚本

    #!/bin/bash
    
    HIVE_LOG_DIR=$HIVE_HOME/logs
    
    # 创建日志目录
    if [ ! -d $HIVE_LOG_DIR ]
    then
    	mkdir -p $HIVE_LOG_DIR
    fi
    
    # 检查进程是否运行正常,参数 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()
    {
    	# 启动Metastore
    	metapid=$(check_process HiveMetastore 9083)
    	cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &"
    	[ -z "$metapid" ] && eval $cmd || echo -e "\033[47;36m Metastroe 服务已启动\033[0m"
    
    	# 启动HiveServer2
    	server2pid=$(check_process HiveServer2 10000)
    	cmd="nohup hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"
    	[ -z "$server2pid" ] && eval $cmd || echo -e "\033[47;36m HiveServer2 服务已启动\033[0m"
    }
    
    # 停止服务
    function hive_stop()
    {
    	# 停止Metastore
    	metapid=$(check_process HiveMetastore 9083)
    	[ "$metapid" ] && kill $metapid || echo -e "\033[47;33m Metastore 服务未启动\033[0m"
    
    	# 停止HiveServer2
    	server2pid=$(check_process HiveServer2 10000)
    	[ "$server2pid" ] && kill $server2pid || echo -e "\033[47;33m HiveServer2 服务未启动\033[0m"
    }
    
    # 脚本参数菜单
    case $1 in
    "start")
    echo -e "\033[47;32m 服务启动中,HiveServer2启动时间较长,请等待!\033[0m"
    hive_start
    ;;
    
    "stop")
    echo -e "\033[47;32m 服务停止中,请等待!\033[0m"
    hive_stop
    ;;
    
    "restart")
    echo -e "\033[47;32m 服务重启中,HiveServer2启动时间较长,请等待!\033[0m"
    hive_stop
    sleep 2
    hive_start
    ;;
    
    "status")
    check_process HiveMetastore 9083 >/dev/null && echo -e "\033[47;36m Metastore 服务运行正常\033[0m" || echo -e "\033[47;31m Metastore 服务运行异常\033[0m"
    check_process HiveServer2 10000 >/dev/null && echo -e "\033[47;36m HiveServer2 服务运行正常\033[0m" || echo -e "\033[47;31m HiveServer2 服务运行异常\033[0m"
    ;;
    
    *)
    echo -e "\033[47;31m  Invalid Args!\033[0m"
    echo 'Usage: '$(basename $0)' start|stop|restart|status'
    ;;
    esac
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Realeo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值