Hive命令及属性配置
文章目录
- Hive命令及属性配置
 - 写在前面
 - Hive常用交互命令
 - Hive支持的命令查看
 - 参数解释说明
 
- Hive其他命令
 - Hive常见属性配置
 - hive窗口打印默认库和表头
 - Hive运行日志信息配置
 - 参数配置方式
 
写在前面
- Linux版本:
CentOS7.5 - Hive版本:
Hive-3.1.2 
Hive常用交互命令
Hive支持的命令查看
- 执行
hive -H或者hive --help命令即可 
注意:请进入到Hive安装目录下的bin目录,再执行上述命令
usage: hive-d,--define <key=value>          Variable subsitution to apply to hivecommands. 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 hivecommands. 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 theconsole)
 
参数解释说明
--database选项表示指定要查询哪个数据库
-e选项表示不进入hive的交互窗口中执行sql语句
例如:
[whybigdata@wbd01 hive-3.1.2]$ bin/hive -e "select id from student;"
 
-f选项表示执行脚本文件中的sql语句
(1)首先在/export/server/hive-3.1.2/目录下(即Hive安装目录下)创建 datas 目录并在datas目录下创建 hivef.sql 文件
[whybigdata@wbd01 hive-3.1.2]$ mkdir datas
[whybigdata@wbd01 hive-3.1.2]$ cd datas
[whybigdata@wbd01 datas]$ touch hivef.sql
 
(2)在文件中写入正确的sql语句
select * from order_goods;
 
(3)执行指定文件中的sql语句
[whybigdata@wbd01 hive-3.1.2]$ bin/hive -f /export/server/hive-3.1.2/datas/hivef.sql
 
(4)执行文件中的sql语句并将结果写入文件中
[whybigdata@wbd01 hive-3.1.2]$ bin/hive -f /export/server/hive-3.1.2/datas/hivef.sql  > /export/server/datas/hive_result.txt
 
上面使用的是执行本地系统的脚本文件,我们也可以读取文件系统(如HDFS)的脚本并执行sql
[whybigdata@wbd01 hive-3.1.2]$ bin/hive -f hdfs://hadoop102:8020/hive-orders-script.sql
 
Hive其他命令
(1)退出hive窗口(hive模式):
hive(default)>exit;
hive(default)>quit;
 
注意:在新版的hive中没区别了,在以前的版本是有的:
- exit:先隐性提交数据,再退出;
 - quit:不提交数据,退出;
 - beeline模式:!quit
 
(2)在hive cli命令窗口中如何查看hdfs文件系统
hive(default)>dfs -ls /;
 
(3)查看在hive中输入的所有历史命令
- 进入到当前用户的根目录/root或/home/whybigdata
 - 查看. hivehistory文件
 
[whybigdata@wbd01 ~]$ cat .hivehistory
 
Hive常见属性配置
hive窗口打印默认库和表头
(1)打印 当前库 和 表头
在hive-site.xml中加入如下两个配置:
<!-- hive窗口打印默认库和表头 -->
<property><name>hive.cli.print.header</name><value>true</value>
</property>
<property><name>hive.cli.print.current.db</name><value>true</value>
</property>
 
Hive运行日志信息配置
(1)Hive的log默认存放在/tmp/atguigu/hive.log目录下(当前用户名下)
 (2)修改hive的log存放日志到/expoer/server/hive-3.1.2/logs
- 修改
/expoer/server/hive-3.1.2/conf/hive-log4j2.properties.template文件名称为hive-log4j2.properties 
[atguigu@hadoop102 conf]$ pwd
/expoer/server/hive-3.1.2/conf
[atguigu@hadoop102 conf]$ mv hive-log4j2.properties.template hive-log4j2.properties
 
(2)在hive-log4j.properties文件中修改log存放位置,此处将其存放在HIVE安装目录下的 logs目录
property.hive.log.dir=/expoer/server/hive-3.1.2/logs
 
参数配置方式
(1)查看当前所有的配置信息
hive>set;
 
(2)参数的配置三种方式
- 配置文件方式 
- 默认配置文件:
hive-default.xml - 用户自定义配置文件:
hive-site.xml 
 - 默认配置文件:
 
注意:用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效。
(2)命令行参数方式
启动Hive时,可以在命令行添加
-hiveconf param=value来设定参数。
- 例如:
 
[atguigu@hadoop103 hive-3.1.2]$ bin/hive -hiveconf mapred.reduce.tasks=10;
 
注意:仅对本次hive启动有效
- 查看参数设置:
 
hive (default)> set mapred.reduce.tasks;
 
(3)参数声明方式
可以在HQL中使用SET关键字设定参数
- 例如:
 
hive (default)> set mapred.reduce.tasks=100;
 
注意:仅对本次hive启动有效。
查看参数设置
hive (default)> set mapred.reduce.tasks;
 
总结:上述三种设定方式的优先级依次递增。即
配置文件<命令行参数<参数声明。注意某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。
全文结束!!!
