之前一直想做一个Hive一键运行脚本
找了很久才找到这两篇博客博客
vi /etc/profile
文件内添加:
export HIVE_HOME=/usr/local/hive(自己hive的安装目录)
export PATH=$PATH:$HIVE_HOME/bin
source /etc.profile
测试一下:
执行 hive --version
有hive的版本显现,配置成功!
- 打开一个空的sh文件
vi hivedemo.sh
- 添加:
#!/bin/bash
hive -e "select * from db_order.t_order"
hive -e "select * from default.t_user"
hql="create table default.t_bash as select * from db_order.t_order"
hive -e "$hql"
- 注意
hql如果太长,可以使用单独的文件,书写sql:如果要执行的hql语句特别复杂,那么,可以把hql语句写入一个文件:
vi demo.hql
select * from db_order.t_order;
select count(1) from db_order.t_user;
运行 hive -f /root/demo.hql 来执行
检测Hive健康状态
利用上面的办法进行Hive健康监测:
- 1 查看hive相关进程
ps -ef | grep hive4203即hive运行的端口号
注意:
包含color= auto xxx 的进程 不需要看,不管是否安装hive,都会显示,所以不作为判断依据 :
- 2 查看正在运行进程是否存在hive进程
jps
证明hive进程在运行
- 利用脚本检测
利用上面检测方式,只能证明进程存在,但是是否进程假死,是否可用,需要进一步进行检验。
hive数据库内置名为default数据库,查看Hive是否运行,编写脚本
注意:运行脚本的前提,hive被添加到环境变量中,添加方式看文章开始
#!/bin/bash
hive_results=`hive -e "show databases"`
echo "-----------------------------"
result=$(echo $hive_results | grep "default")
if [[ "$result" != "" ]]
then
echo Hive服务正常
else
echo Hive状态异常
fi
运行
结果: Hive服务正常