Hive CLI命令选项

上一章Hive ClI命令界面,了解了如何使用Hive CLI命令和Hive进行交互,本文讲解Hive CLI总共有哪些命令选项。

我们可以通过启动命令查询,可以看到:

hive --help --service cli 

Hive CLI命令主要分为:

1、-d,--define <key=value>:设置变量和属性的命令选项

2、-e <quoted-query-string>:一次使用查询命令选项

3、-f <filename>:从文件当中执行hive查询

4、-i <filename>:指定一个文件,在hive启动之前会先执行这个文件的命令选项。

Hive变量和属性

hive自定义变量可以采用--define key=value,也可以使用~hivevar key=value,两个都是可以让用户进行自定义变量,以便在后续的hive脚本当中引用,来满足自定义变量的需求。其实在执行--define key=value,hive是把自定义的键值对放到hivevar命名空间当中。因此,两个的作用是等同的。

hive当中变量和属性的命名空间主要分为四种:hivevar、hivecof、system、env。

命名空间

使用权限

解释

hivevar

可读/可写

用户自定义的变量

hiveconf

可读/可写

HIVE相关配置属性

system

可读/可写

java定义的配置属性

env

只读

shell环境定义的环境变量


在CLI命令行当中,我们可以采用SET命令来显示或修改变量值。

例1、我们利用env显示一下之前安装时候hive的环境变量。

set env:HIVE_HOME


例2、我们利用--define和hivevar命名空间演示一下用户自定义变量:

--用户自定义
hive --define stuname=freeit

--查看自定义的值
set stuname;

--再次利用命名空间hivevar设置值
set hivevar:stuname=freeit1;

--查看自定义
set stuname;

--查看命名空间定义的值
set hivevar:stuname;


hive如何使用变量

hive自定义好了变量和属性,在hive脚本当中是如何引用的呢?

变量和属性获取语法如下:

${命名空间:变量名}

比如:${hivevar:stuname}获取用户自定义变量stuname、${env:HIVE_HOME}获取hive的安装目录的环境变量。

注意:假如命名空间是hivevar可以省略命名空间,直接写${变量名}:${stuname}

Hive -e 一次性查询命令

用户有时候想快速利用Hive CLI执行一个或者多个查询时,执行完毕就关闭Hive CLI。

Hive命令项-e提供了此功能。


例1、利用hive -e 快速查询学生信息表(stuinfo),代码如下:

hive -e "select * from stuinfo"


由于hive的结果值都是存储在hdfs上的,所以可以根据命令项-S把结果存储在本地系统,命令如下:

hive -S -e "select * from stuinfo" >/usr/local/sturesult;

--查看一下结果文件
cat  /usr/local/sturesult

Hive -f执行文件中的hql

Hive -f命令项提供了可以执行指定文件中一个或者多个HQL查询语句。

Hive -f命令语法:

hive -f 文件路径

例1、把查询学生信息的语句复制到一个文件,看下hive -f命令执行情况:

--文件当中的内容(文件名stuinfo.hql)
select * from stuinfo;

--执行命令
hive -f /usr/local/stuinfo.hql


在hive shell当中,用户也可以用SOURCE命令来执行一个脚本文件,语法如下:

SOURCE 文件路径

hive -i命令项

hive -i命令项:会指定一个文件,在hive启动CLI时,在提示符出现之前加载这个文件,然后会在HOME目录下生成一个.hiverc的文件。

这个hiverc文件在hive启动之前,都会自动执行这个文件当中的命令,所以经常用来加载用户需要频繁执行的命令,比如设置一些系统属性,一些所需要的JAR包等等。


命令语法如下:

hive -i 文件名
举报
评论 0