Hive命令行介绍

简介

$HIVE_HONE/bin/hive命令工具是与Hive服务交互的最常用的方式,是学习和熟悉Hive重要的工具。本文总结了Hive命令行的常见用法,能够帮助读者快速了解和学习Hive。

hive命令选项

在配置Hive时,已经将$HIVE_HONE/bin加入PATH中,用户只要在shell提示符中输入hive,就可以在shell环境中找到这个命令。

hadoop@bob-virtual-machine:~$ hive --help
Usage ./hive <parameters> --service serviceName <service parameters>
Service List: beeline cleardanglingscratchdir cli hbaseimport hbaseschematool help hiveburninclient hiveserver2 hplsql hwi jar lineage llapdump llap llapstatus metastore metatool orcfiledump rcfilecat schemaTool version
Parameters parsed:
  --auxpath : Auxillary jars
  --config : Hive configuration directory
  --service : Starts specific service/component. cli is default
Parameters used:
  HADOOP_HOME or HADOOP_PREFIX : Hadoop install directory
  HIVE_OPT : Hive options
For help on a particular service:
  ./hive --service serviceName --help
Debug help:  ./hive --debug --help
--auxpath参数允许用户指定一个以冒号分割的"附属的"JAR,用来支持用户自定义的扩展。
--config文件目录,允许用户用于覆盖$HIVE_HOME/conf中的默认的属性配置,而指向一个新的配置文件目录
--service用于指定具体的服务,帮助信息中给出了支持的服务列表,缺省为cli。

命令行界面

CLI选项
下面的命令显示了CLI所提供的选项列表:
hadoop@bob-virtual-machine:~$ hive --service cli --help
usage: hive
 -d,--define <key=value>          Variable subsitution to apply to hive
                                  commands. e.g. -d A=B or --define A=B
    --database <databasename>     Specify the database to use
 -e <quoted-query-string>         SQL from command line
 -f <filename>                    SQL from files
 -H,--help                        Print help information
    --hiveconf <property=value>   Use value for given property
    --hivevar <key=value>         Variable subsitution to apply to hive
                                  commands. e.g. --hivevar A=B
 -i <filename>                    Initialization SQL file
 -S,--silent                      Silent mode in interactive shell
 -v,--verbose                     Verbose mode (echo executed SQL to the
                                  console)

变量与属性

在介绍变量和属性前,先介绍一下Hive中属性和变量命名空间:

命名空间
使用权限
描述
hivevar
rw
用户自定义变量
hiveconf
rw
Hive相关的配置属性
system
rw
Java定义的配置属性
env
r
shell环境定义的环境变量
了解命名空间,再来分析相关的CLI属性选项。--define key=value和--hivevar key=value是等价的,都是向hivevar命名空间中添加属性。--hiveconf key=value用于设置Hive相关的配置属性。
在CLI中,可以使用SET命令显示或者修改变量的值,在CLI查询语句中引用变量需要使用${命名空间:属性名}的方式,实际查询中的变量引用会先被替换掉然后才会提交给查询处理器。前缀hivevar:是可选的。

hadoop@bob-virtual-machine:~$ hive --define foo=bar
hive> set foo;
foo=bar
hive> set hivevar:foo;
hivevar:foo=bar
hive> create table toss1 (i int, ${hivevar:foo} string);
OK
Time taken: 2.535 seconds
hive> desc toss1;
OK
i                       int
bar                     string
Time taken: 0.392 seconds, Fetched: 2 row(s)
设置属性时有一个需要注意的地方,就是属性优先级层次的问题,按照优先级由高到低的顺序排列: hive set命令、命令行--hiveconf选项、hive-site.xml、hive-default.xml、hadoop-site.xml(或等价的core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml)。有时在排查问题时会用到。

”一次执行“命令
如果用户有时期望执行一个或多个查询(分号分割),执行结束后hive CLI立即退出,这时需要使用-e参数。这里需要注意的是,Hive会将结果输出的标准输出中。

hadoop@bob-virtual-machine:~$ hive -e "set" | grep warehouse
hive.metastore.warehouse.dir=hdfs://localhost:9000/user/hive/warehouse
hive.warehouse.subdir.inherit.perms=true

执行文件中Hive查询
-f选项允许hive执行指定文件中的一个或者多个查询语句。按照惯例,一般把这些查询语句保存在以.q或.hql为后缀的文件中。该功能等同于在shell中使用source命令来执行一个脚本文件。

$ hive -f /home/hadoop/withqueries.hql
$ hive
hive >  source /home/hadoop/withqueries.hql
hiverc文件
-i选项允许用户指定一个文件,当CLI启动时,在提示符出现前执行这个文件。Hive会自动在HOME目录下寻找名为.hiverc的文件,且自动执行这个文件中的命令。对于用户需要频繁使用的属性,使用这个文件非常方便。
自动不全功能
如果用户在输入过程中敲击Tab制表键,那么CLI会自动不全可能的关键字或者函数名。
执行shell命令
用户不需要退出CLI就可以执行简单的bash shell命令,只要在命令前加上!并且以分号(;)结束即可。

参考资料

1. Hive编程指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值