Hive编程指南中的命令

最近刚接触大数据这块,从来没写过博客。就用大数据做为新的开始吧。一下为最近刚读完《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语句中科院使用八进制编码\001标识
列^B(Ctrl+B)用于分隔ARRAY或者STRUCT中的元素,或用于MAP中键-值对之间的分隔。在CREATE TABLE语句中可以使用八进制\002表示
列^C(Ctrl+C)用于MAP中键和值之间的分隔。在CREATE TABLE语句中可以使用八进制编码\003表示
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 '\001'
COLLECTION ITEMS TERMINATED BY '\002'
MAP KEYS TERMINATED BY '\003'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
18. hive中用户没有显示指定数据库,将会使用默认数据库default。default数据库没有自己的目录,default数据库所在目录位于属性hive.metestore.warehouse.dir所指定的顶层目录之后
hive中创建数据库:
CREATE DATABASE db_test;
如果db_test已存在,将会抛出一个错误信息,可使用如下语句避免该错误信息抛出:
CREATE DATABASE IF NOT EXISTS db_test;
查看Hive中所包含的数据库
hive>SHOW DATABASES;
使用正则查询数据库名称以h开头的库
hive>SHOW DATABASES LIKE 'h.*';
19. 可通过LOCATION关键字,修改数据库的默认位置
hive>CREATE DATABASE db_test
>LOCATION '/usr/local/directory';
COMMENT关键字为数据库添加描述
hive>CREATE DATABASE db_test
>COMMENT 'Holds all db_test tables';
DESCRIBE关键字查看数据库描述,数据库所在的文件目录位置路径
hive>DESCRIBE DATABASE db_test;
db_test Holds all db_test tables

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值