1.本文命令的两种模式:
交互模式,即hive的shell环境:hive > ….
非交互模式:普通的Linux命令模式:%.....
2.Hive Shell常用操作
1) hive -e:从命令行执行指定的HQL,不需要分号:
% hive -e ‘select * from dummy‘ > a.txt
2) hive –f: 执行HQL脚本
% hive -f /home/my/hive-script.sql
3) hive -i:在进入交互模式之前,执行初始化sql文件
% hive -i /home/my/hive-init.sql
4) hive -v:输出执行的HQL语句到控制台
5) Hive -S:只显示运行结果,不显示其他信息:
% hive -S -e ‘select * from dummy’
3.Hive的交互模式下特殊命令:
使用a!前缀来运行宿主操作系统的命令,即linux的操作命令。hive > a! ….
使用dfs命令来访问hadoop文件系统,即执行hadoop命令。hive > dfs….
4.保存查询结果
第一种方式:
% hive -e ‘select * from dummy‘ > a.txt
第二种方式:
hive > Insert overwrite local directory ‘/root/hive/a.txt’ select * from logs sort by ts;
5.下面是一个生成单行表的方法:
% echo ‘x‘ > /tmp/dummy.txt
% hive -e "create table dummy (value string); \
load data local inpath ‘/tmp/dummy.txt‘ overwrite into table dummy"
//local表示从本地的Linux系统拷贝文件到hdfs系统上的‘/user/hive/warehouse/‘目录下。
//overwrite表示覆盖写,即把原有的文件删除,再将本地的数据写入。如果省略这一关键字,Hive就简单的把新的数据文件加入目录中。