hive 启动元数据服务(metastore和hiveserver2)和优雅关闭脚本

本文介绍了一个用于管理Hive元数据服务(包括metastore和hiveserver2)的shell脚本。该脚本提供了启动、停止、重启和检查服务状态的功能,通过检查进程ID和端口来确保服务的正常运行。
hive 启动元数据服务(metastore和hiveserver2)和优雅关闭脚本
hive.sh
#!/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}'
在大数据数仓离线项目中,使用sh脚本启动Hadoop集群的Hive services时,metastorehiveserver2服务运行异常,可从以下几个方面排查解决: ### 环境变量配置 确保已经正确配置好Hive的环境变量。若未配置,执行脚本时必须添加绝对路径。可通过以下命令检查环境变量: ```bash echo $HIVE_HOME ``` 若未输出正确的Hive安装路径,则需要在`~/.bashrc` 或 `/etc/profile` 中添加环境变量: ```bash export HIVE_HOME=/path/to/hive export PATH=$PATH:$HIVE_HOME/bin ``` 添加后执行以下命令使配置生效: ```bash source ~/.bashrc ``` ### 服务安装服务脚本存放的服务器必须是Hivemetastorehiveserver2服务的安装服务器。可通过检查服务器上的Hive安装目录来确认。 ### 端口占用情况 脚本中使用`netstat -nltp` 命令检查端口是否被监听,端口号需根据服务Hive的实际配置而定。若端口被占用,可通过以下命令查找占用该端口的进程: ```bash netstat -nltp | grep 9083 # metastore默认端口 netstat -nltp | grep 10000 # hiveserver2默认端口 ``` 若发现端口被占用,可使用`kill -9` 命令终止占用端口的进程: ```bash ps -ef | grep <进程ID> | grep -v grep | awk '{print $2}' | xargs kill -9 ``` ### 日志查看 脚本中使用重定向将服务的输出信息错误信息都重定向到了`/dev/null`,可暂时去掉重定向,以便查看详细的错误信息: ```bash # 修改启动metastore服务的命令 hive --service metastore # 修改启动hiveserver2服务的命令 hiveserver2 ``` 根据输出的错误信息进行针对性解决。 ### 脚本内容检查 确保脚本内容正确,特别是命令的语法参数。可参考以下启动脚本示例: ```bash #!/bin/bash # 启动hivemetastore服务 hive --service metastore echo -n "Starting metastore servece,please wait" mt=1 while [ $mt -ne 0 ] do sleep 0.5 echo -n "." netstat -nltp | grep 9083 > /dev/null 2>&1 # 端口号根据服务hive的实际配置的端口号而定 mt=$? done echo "" echo -e "\e[32mHiveMetastore service is running!\e[0m" # 启动hiveserver2服务 hiveserver2 echo -n "Starting hiveserver2 service,please wait" hv2=1 while [ $hv2 -ne 0 ] do sleep 0.5 echo -n "." netstat -nltp | grep 10000 > /dev/null 2>&1 # 端口号根据服务hive的实际配置的端口号而定 hv2=$? done echo "" echo -e "\e[32mHiveServer2 service is running!\e[0m" ``` ### 依赖服务检查 确保Hive依赖的服务(如Hadoop、MySQL等)已正常启动。可通过以下命令检查Hadoop服务状态: ```bash jps ``` 确保NameNode、DataNode等进程正常运行。 ### 数据库连接 若Hivemetastore使用MySQL存储元数据,需确保MySQL服务正常运行,并且Hive能够正确连接到MySQL。可通过以下命令测试连接: ```bash bin/sqoop list-databases --connect jdbc:mysql://hadoop01:3306/ --username root --password 123456 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值