HIVE CLI中有三种定义属性或变量的参数,分别是:
1. hiveconf
hiveconf用于定义HIVE执行上下文的属性(配置参数),可覆盖覆盖hive-site.xml(hive-default.xml)中的参数值,如用户执行目录、日志打印级别、执行队列等,常用的配置属性如下:
| 参数名称 | 参数解释 |
|---|---|
| hive.metastore.warehouse.dir | 启动时指定用户目录,不同的用户不同的目录 |
| hive.cli.print.current.db | 显示当前数据库 |
| hive.root.logger | 输出日志信息 |
| hive.cli.print.header | 显示列名称 |
| mapred.job.queue.name | 执行队列名称 |
如果熟悉HIVE操作的话,这些配置属性还可以利用“set”指令进行修正,如下:
# 首先启动HIVE
hive
# 然后设置参数
set mapred.job.queue.name=root.default
上面的指令可等价于“hive --hiveconf”命令,如下:
hive --hiveconf "mapred.job.queue.name=root.default"
2. hivevar
hivevar用于定义HIVE运行时的变量替换,类似于JAVA中的“PreparedStatement”,与“${}”配合使用,示例如下:
# 定义变量,并启动HIVE CLI
hive --hivevar my="201809" --database mydb
# 执行SQL
select * from mydb where concat(year, month) = ${my} limit 10;
3. define
define与hivevar用途完全一样,还有一种简写“-d”,示例如下:
# 定义变量
hive --hiveconf "mapred.job.queue.name=root.default" -d my="201809" --database mydb
# 执行SQL
select * from mydb where concat(year, month) = ${my} limit 10;
HiveCLI参数详解
本文详细介绍了HiveCLI中三种参数定义方式:hiveconf、hivevar和define,分别用于配置属性、运行时变量替换和变量定义。hiveconf可覆盖默认配置,hivevar与define则用于SQL中的变量替换。
7389

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



