shell一键启动hive脚本

hive交互方式一般有三种:

1) bin/hive        2)使用SQL脚本或文件进行交互        3)beeline client

本文的一键启动脚本采用第三种交互方式beeline client,以下是建立脚本需要的过程:

1.安装expect

yum install -y expect

2.建立expect脚本启动beeline,并登入hive。脚本名称为:beeline.exp,我的脚本是放在了/develop/onekey目录下面,这个路径下面要用到

#!/bin/expect
spawn beeline
set timeout 5
expect "beeline>"
send "!connect jdbc:hive2://node3:10000\r"
expect "Enter username for jdbc:hive2://node3:10000:"
send "root\r"
expect "Enter password for jdbc:hive2://node3:10000:"
send "******\r"
interact

以上脚本send  "root\r"中的root是登入的用户名,此用户名需要和hadoop中的用户名保持一致。

send  "******\r" 里面的*可以随意输入。

3.新建一个文件命名为myhive.sh,路径在/develop/onekey,主要是hive相关操作,比如启动metastore,hiveserver2以及beeline登入hive,以下是脚本内容:

#!/bin/bash
# 判断参数个数
if [ $# -lt 1 ]
then
        echo "need one param, but given $# ..."
        exit;
fi
# 日志文件的存储位置
file_path='/develop/data/logs/hive.log'
case $1 in
"start")
        echo ' ---------- start metastore ---------- '
        nohup /develop/server/hive-2.1.0/bin/hive --service metastore >> $file_path 2>&1 &
        echo ' ---------- start hiveserver2 ---------- '
        nohup /develop/server/hive-2.1.0/bin/hive --service hiveserver2 >> $file_path 2>&1 &
        ;;
"stop")
        echo ' ---------- stop hiveserver2 ---------- '
        kill -9 $(jps -m | grep 'HiveServer2' | awk 'NR==1{print $1}')
        echo ' ---------- stop metastore ---------- '
        kill -9 $(jps -m | grep 'HiveMetaStore' | awk 'NR==1{print $1}')
        ;;
"beeline")
        echo ' ---------- enter beeline ---------- '
        expect /develop/onekey/beeline.exp
        ;;
*)
        echo "Input Params Error ..."
        ;;
esac

4.创建/develop/data/logs目录,用于存储hive启动的日志

mkdir -p /develop/data/logs

5.在/etc/profile.d/下面新建一个my_env.sh文件

vim /etc/profile.d/my_env.sh

6.在新建的my_env.sh文件中配置脚本的环境变量

# 一键启动脚本位置
ONEKEY_HOME=/develop/onekey
export PATH=$PATH:$ONEKEY_HOME

7.刷新环境变量

source /etc/profile

配置环境变量的主要目的是为了在任意地方都能直接使用脚本进行hive的相关操作

以上便是hive一键启动的脚本,写这篇文章的主要目的一是记录自己的学习,二是以后用到的时候方便查找,最后也希望这篇文章能够帮到大家。如果中间有什么问题欢迎大家指正,谢谢。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值