一些使用技巧
Set命令
可以在Hive命令行中使用set
命令去临时设置一些参数的值,也就是hive-site.xml
文件中那些参数的值。
但通过这种方式设置的参数值只对当前会话有效。
也可以在脚本文件~/.hiverc
中配置set
命令,使得某些命令仅对当前机器的当前用户有效(~/.hiverc
文件需要自己创建)。
临时更改生效
例如,在hive-site.xml
中存在参数hive.cli.print.current.db
,打印出当前在哪个数据库,默认为false
,现在,将它改成true
。
> cd /home/work/hive-3.1.3
> ./bin/hive
......
hive> set hive.cli.print.current.db=true;
hive (default)>
退出当前会话在重新连接后,又会恢复成默认设置。
本机用户生效
创建脚本文件~/.hiverc
。
> cd ~
> vi .hiverc
set hive.cli.print.current.db=true;
再通过命令行连接Hive。
> cd /home/work/hive-3.1.3
> ./bin/hive
......
hive (default)>
会发现成功连接的时候,提示符就已经显示了当前所在的数据库。
Hive日志
每次连接Hive的时候,就会出现一大堆的日志内容,比较影响使用。
先消除掉日志冲突造成的问题。
> cd /home/work/hive-3.1.3/lib
> mv log4j-slf4j-impl-2.17.1.jar log4j-slf4j-impl-2.17.1.bak
Hive中的日志分为两类。
第一种运行时日志
可以通过修改${HIVE_HOME}/conf/hive-log4j2.properties.template
和${HIVE_HOME}/conf/hive-exec-log4j2.properties.template
来控制。
先修改${HIVE_HOME}/conf/hive-log4j2.properties.template
。
> cd /home/work/hive-3.1.3/conf
> mv hive-log4j2.properties.template hive-log4j2.properties
> vi hive-log4j2.properties
property.hive.log.level = WARN
property.hive.log.dir = /home/work/volumes/hive/logs
再修改${HIVE_HOME}/conf/hive-exec-log4j2.properties.template
。
> cd /home/work/hive-3.1.3/conf
> mv hive-exec-log4j2.properties.template hive-exec-log4j2.properties
> vi hive-exec-log4j2.properties
property.hive.log.level = WARN
property.hive.log.dir = /home/work/volumes/hive/logs
再通过命令行连接Hive。
> cd /home/work/hive-3.1.3
> ./bin/hive
......
hive (default)>
会发现输出的日志少了很多。而在/home/work/volumes/hive/logs
目录中则多出了hive.log
文件。
另外,同样的道理,同一个conf
目录下的beeline-log4j2.properties.template
、llap-cli-log4j2.properties.template
和llap-daemon-log4j2.properties.template
分别是用来控制beeline
、llap-cli
和llap-daemon
的日志行为的。
感谢支持
更多内容,请移步《超级个体》。