hive非交互模式
1,可以将hive执行的sql语句保存到脚本文件中,通过-f选项制定脚本文件执行hive eg: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脚本文件 |
本文介绍了Hive的两种工作模式:非交互模式和交互模式。非交互模式适用于批量执行SQL脚本,包括使用-f选项执行脚本文件及使用-e选项直接执行SQL语句,并介绍了静音模式。交互模式则允许用户逐条执行HQL语句并提供了一系列辅助命令,如reset、set等。
708

被折叠的 条评论
为什么被折叠?



