1.变量和属性
启动hive时加入参数,进行定义变量,启动之后可以更改参数的值;
$hive --define foo=bar
hive>set foo;查询变量的值
或者hive>set hivevar:foo;
更改变量值hive>set hivevar:foo=bar2;
在创建表时可以用hive中定义的变量,如:
hive>create table hadoop (id int,${hivevar:foo} string);
或
hive>create table hadoop (id int,${foo} string);
可以在启动hive时用参数--hiveconf对相应的属性进行配置。
在未启动hive时可以用-e参数然后加要执行的sql命令执行查询;如:
2.查询
$hive -e "select * from hadoop limit 3";
加上参数-S可以只获取想要的对应表中的数据(不会返回ok time taken:***seconds)
这时可以利用重定向功能将返回的结果存储到文件中。
$hive -e "select * from hadoop limit 3" >/tmp/myquery(用cat可以查看)
3.hive中还可以将多个查询语句存储在文件中,然后一并执行
$hive -f /path/file.hql (文件一般存储为后缀名为.q或.hql)
在hive shell中可以用source /path/file.hql执行。
4.hive中还可以执行shell命令
hive>! /bin/echo "what up dog";
只要在相应的命令前面加上!即可。
注意不能使用需要用户进行输入的交互命令。
5.hive中使用hadoop的dfs命令
只需要将hadoop命令中的关键字hadoop去掉,然后用分好结束。
实际上这样比比在bash shell中执行hadoop dfs ..更高效,因为后者每次都会启动一个新的jvm实例,而hive会在同一个进程中执行这些命令。
6.hive脚本中的注释
--Copyright (c) 2012 Megacorp,LLC.
--This is the best Hive Script evar;
.....