1. Hive 客户端命令

Hive中变量和属性命名空间

命令空间 使用权限 描述
hivevar 可读/可写 (hive v0.80以及之后的版本)用户自定义变量
hiveconf 可读/可写 Hive相关的配置属性
system 可读/可写 Java定义的配置环境
env 只可读 Shell环境定义的环境变量
  • —define key=value实际上和—hivevar key=value是等价的
  1. hive --define foo=bar #在shell命令行的根目录下输入,进入hive的cli命令行,并且定义了一个变量
  2. set foo; #查看foo变量值
  3. set hivevar:foo; #查询指定空间变量下的信息
  4. set hivevar:foo=bar2; #查询赋值
  5. create table toss1(i int,${hivevar:foo} string); #创建表时也可引用变量
  • hiveconf 用于配置Hive行为的所有属性
  1. hive --hiveconf hive.cli.print.current.db=true #通过hiveconf将指定属性赋值
  2. set hive.cli.print.current.db; #查询属性值
  3. hive --hiveconf y=5
  4. set y; #查询值
  5. SELECT * FROM whatsit WHERE i=${hiveconf:y}; #语句中也可以使用属性
  • -e 执行一个或者多个查询(使用分号分隔),执行结束后hive CLI立即退出
  1. hive -e "SELECT * FROM my_table" #查询后退出hive
  • -S -e 增加-S选项可以开启静默模式,这样可以在输出结果中去掉“OK”和“Time taken…”等行,以及其他一些无关紧要的输出信息 只输出结果
  1. hive -S -e "SELECT * FROM my_table LIMIT 3" >/usr/tmp/my_table_3.txt #只输出结果 并写入到指定文件中
  • 在客户端外 文件中执行sql
  1. vim /usr/hive/hive/withqueries.hql #新建文件里面存放sql语句
  2. SELECT * FROM my_table;
  1. hive -f /usr/hive/hive/withqueries.hql #启动hive时 加载指定文件中的sql语句
  • 在hive客户端 执行指定的sql文件
  1. source /usr/hive/hive/withqueries.hql;
  • -i 通过文件中sql语句 批量设置值
vim /usr/hive/hive/.hiverc

set hive.cli.print.current.db=true;
set hive.exec.mode.local.auto=true;
hive -i /usr/hive/hive/.hiverc #加载指定文件的设定