hive非交互模式
1,可以将hive执行的sql语句保存到脚本文件中,通过-f选项制定脚本文件执行hiveeg:hive -f script.sql
2,对于较短的sql语句,可以直接使用-e选项运行hive
eg:hive -e 'select * from table a'
3,-S选项
hive执行过程中,会在终端上显示mapreduce的进度。如果不想显示进度,可以使用-S选项。
这个静音模式很实用,,通过第三方程序调用,第三方程序通过hive的标准输出获取结果集。
eg:$HIVE_HOME/bin/hive -S -e 'select a.col from tab1 a' > tab1.csv
hive交互模式
当$HIVE_HOME/bin/hive执行时,没有-e或者-f选项,会进入交互式shell模式。交互模式下,输入一条语句,执行一条语句。语句以分号结束。交互模式下,除了输入hql外,还可以输入以下
命令。
命令 | 描述 |
quit | 退出交互式shell |
exit | 退出交互式shell |
reset | 重置配置为默认值 |
set <key>=<value> | 修改特定变量的值 |
| 注意:?如果变量名拼写错误,不会报错 |
set | 输出用户覆盖的hive配置变量 |
set -v | 输出所有Hadoop和Hive的配置变量 |
add FILE[S] <filepath> <filepath>*? | 添加 一个或多个 file, jar, ?archives到分布式缓存 |
add JAR[S] <filepath> <filepath>*? | |
add ARCHIVE[S] <filepath> <filepath>* | |
list FILE[S]? | 输出已经添加到分布式缓存的资源。 |
list JAR[S]? | |
list ARCHIVE[S] | |
list FILE[S] <filepath>*? | 检查给定的资源是否添加到分布式缓存 |
list JAR[S] <filepath>*? | |
list ARCHIVE[S] <filepath>* | |
delete FILE[S] <filepath>*? | 从分布式缓存删除指定的资源 |
delete JAR[S] <filepath>*? | |
delete ARCHIVE[S] <filepath>* | |
! <command> | 从Hive shell执行一个shell命令 |
dfs <dfs command> | 从Hive shell执行一个dfs命令 |
<query string> | 执行一个Hive 查询,然后输出结果到标准输出 |
source FILE <filepath> | 在CLI里执行一个hive脚本文件 |