roman_日积跬步-终至千里

roman_日积跬步-终至千里

一. 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 &

 

11-18 07:04