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相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。
全文结束!!!