概述
最近刚接触大数据这块,从来没写过博客。就用大数据做为新的开始吧。一下为最近刚读完《Hive编程指南》这本书,本人整理的一些书中常用命令及简介。勿喷,谢谢。
1. 设置hive为本地模式,设置后hive主动使用该模式(小型数据、执行速度快):
hive>set hive.exec.mode.local.auto=true
2. 当需要频繁使用hadoop dfs命令时,可为其设置别名:
$ alias hdfs = "hadoop dfs"
3. 查看大文件时,使用管道将hadoop上比较大的文件内容传递给shell中的more、head、tail:
$ hadoop dfs -cat wc-out/* | more
4. 指定数据仓库目录
hive>set hive.metastore.warehouse.dir=/user/myname/hive/warehouse;
5. 查看hive命令的一个简单说明的选项列表
$ hive --help
6. 在hive提示符前打印当前所在数据库名
$ hive --hiveconf hive.cli.print.current.db=true;
修改后CLI显示如下所示
hive(dbname)>set hive.cli.print.current.db;
hive.cli.print.current.db=true
7. hive中一次性使用命令'-e'(命令执行结束后CLI立即退出)
$ hive -e "select * from mytable limit 3";
8. 开启静默模式'-S',在输出结果中去掉"OK"和"Time taken"等行,以及其他一些无关紧要的输出信息。将结果输出到文件myquery中
$ hive -S -e "select * from mytable limit 3" > /tmp/myquery
9. 使用grep来模糊获取hive中的某属性名,获取属性名中含有warehouse的属性列表
$ hive -S -e 'set' | grep warehouse
hive.metastore.warehouse.dir=/usr/hive/warehouse
hive.warehouse.subdir.inherit.perms=false
10. 从文件中执行hive查询
$ hive -f /path/to/file/withqueries.hql
在hive shell中可以使用source命令来执行一个脚本文件
hive> source /path/to/file/withqueries.hql
11. hive中使用src作为源表(虚拟表),类似数据库中的dual表
12. hive中加载本地文件中数据到表src中
hive> LOAD DATA LOCAL INPATH '/tmp/myfile' INTO TABLE src;
13. hive的CLI中执行shell命令。只要在命令前加上!并且以;结尾就可以(不支持管道,*, 文件名自动补全功能)
hive> ! /bin/echo 'what up dog';
'what up dog'
hive> ! pwd;
/home/me/hiveplay
14. hive CLI中执行Hadoop dfs命令,只需要将hadoop命令关键字hadoop去掉,然后以;结尾即可
hive> dfs -ls / ;
可以通过如下命令查看dfs所提供的所有功能选项列表
hive> dfs -help;
15. hive CLI中显示表中字段名(默认关闭)
hive> set hive.cli.print.header=true;
16. hive中默认记录和字段分隔符
行(n)
列^A(Ctrl+A)用于分隔字段(列)。在CREATE TABLE语句中科院使用八进制编码 01标识
列^B(Ctrl+B)用于分隔ARRAY或者STRUCT中的元素,或用于MAP中键-值对之间的分隔。在CREATE TABLE语句中可以使用八进制 02表示
列^C(Ctrl+C)用于MAP中键和值之间的分隔。在CREATE TABLE语句中可以使用八进制编码 03表示
17. hive中CREATE TABLE时,指定分隔符.ROW FORMAT DELIMITED 必须写在其他子句(除STORED AS ...子句)之前
CREATE TABLE employees(
name STRING,
salary FLOAT,
subordinates ARRAY<STRING>,
deductions MAP<STRING, FLOAT>,
address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '