一. hive变量操作
1. 查看当前hive配置信息
# 查看当前所有配置信息
hive > set ;
# 查看某一项配置信息
hive >set hive.metastore.uris;
不进入hive终端模糊搜索某项配置
# 模糊搜索set命令的输出结果中某个于warehouse相关的属性
$ hive -S -e "set" | grep warehouse
hive.metastore.warehouse.dir=/user/hive/warehouse
hive.warehouse.subdir.inherit.perms=false
2. 设置变量
hive> set com.gao.username;
com.gao.username is undefined
hive> set com.gao.username=liang;
hive> set com.gao.username;
com.gao.username=liang
设置hive变量
$ bin/hive --hiveconf <property=value>
注意:此种方式设置属性的值,仅仅在当前会话session生效。
3. 修改变量
# hiveconf: Hive相关的配置属性
# 不进入Hive进行配置属性修改
hive --hiveconf hive.cli.print.current.db=true
# 进入hive进行配置修改
hive>set hiveconf:hive.cli.print.current_db=true;
注意有些hiveconf无法修改
# 查看
hive> set hiveconf:hive.security.authorization.enabled;
hiveconf:hive.security.authorization.enabled=true
# 设置失败
hive> set hiveconf:hive.security.authorization.enabled=false;
Query returned non-zero code: 1, cause: Cannot modify hive.security.authorization.enabled at runtime. It is in the list of parameters that can't be modified at runtime or is prefixed by a restricted variable
4. 进入hive终端重新加载配置
$ hive --config /hive-0.9.0/conf (重新载入新的配置文件)
二. 执行hive sql
# 执行命令方式1:使用下面的 “一次使用”命令(-e是指一次执行,-S是指静默模式,在输出结果中不显示Ok和Time taken字段)
hive -e -S "select * from mytable limit 3";
# 执行命令方式2:调用Hive执行hql文件
hive -f /path/query.hql
# 执行命令方式3:在Hive shell内执行hql文件
$ hive
hive>source /path/query.hql
三. 启动hive
启动hiveserver和metastore
nohup hive --service hiveserver2 >> /tmp/hiveserver2.log 2>&1 &
nohup hive --service metastore >> /tmp/hivemeta.log 2>&1 &