HIve常用命令

#hive     启动
hive>quit;     --退出hive
hive> exit;    --exit会影响之前的使用,所以需要下一句kill掉hadoop的进程
>hadoop job -kill jobid

hive>create database database_name; 创建数据库
如果数据库已经存在就会抛出一个错误信息,使用如下语句可以避免抛出错误信息:
hive>creat database if not exists database_name

hive> show databases;   查看数据库
如果数据库比较多的话,也可以用正则表达式来查看:
hive> show databases like 'h.*';

hive> use default;    --使用哪个数据库
hive>show tables;  --查看该数据库中的所有表
hive>show tables  ‘*t*’;    --支持模糊查询
hive> describe tab_name;    --查看表的结构及表的路径
hive> describe database database_name;  --查看数据库的描述及路径
可以用下面的命令来修改数据库的路径:
hive> creat database database_name location '路径';   
hive> drop database if exists database_name; --删除空的数据库
hive> drop database if exists database_name cascade; --先删除数据库中的表再删除数据库

hive>show partitions t1;   --查看表有哪些分区 


修改表:
hive>alter table table_name rename to another_name;   --修改表名

hive>drop table t1 ;      --删除表t1
或者: hive> drop table if exists t1;

hive不支持修改表中数据,但是可以修改表结构,而不影响数据

有local的速度明显比没有local慢:
hive>load data inpath '/root/inner_table.dat' into table t1;   移动hdfs中数据到t1表中
hive>load  data local inpath '/root/inner_table.dat' into table t1;  上传本地数据到hdfs中
hive> !ls;  查询当前linux文件夹下的文件
hive> dfs -ls /; 查询当前hdfs文件系统下  '/'目录下的文件

 

1.创建表

 


#建表(默认是内部表)

create table trade_detail(id bigint, account string, income double, expenses double, time string) 

row format delimited fields terminated by '\t';

 

#建分区表

#普通表和分区表区别:有大量数据增加的需要建分区表

create table td_part(id bigint, account string, income double, expenses double, time string) 

partitioned by (logdate string) 

row format delimited fields terminated by '\t';

 

#建外部表

create external table td_ext(id bigint, account string, income double, expenses double, time string) 

row format delimited fields terminated by '\t' location '/td_ext';

2.加载数据列表


#把本地数据装载到数据表,也就是在metastore上创建信息

load data local inpath '/root/a.txt' into table trade_detail; 

 

#把HDFS上的数据装载到数据表

load data inpath '/target.txt' into table trade_detail;

 

#加载数据到分区表必须指明所属分区

load data local inpath './book.txt' overwrite into table book 

partition (pubdate='2010-08-22');

 

3.Hive 的shell下可以执行HDFS和Linux命令


在Hive shell下执行hadoop命令行:

#比如:hadoop fs -ls /,在hive下可以这样执行:

hive> dfs -ls /;

 

 

在Hive shell下执行linux系统命令:

!cmd;

例如:!pwd;打印当前工作目录

 

在Hive shell下执行sql文件:

hive> source my.sql;

 

hive -S 以静默模式启动hive(不打印日志信息,纸打印结果);

 

hive -e "HiveQL",不进入hive的交互模式,直接执行命令;

 

当然也可以结合静默模式一起使用:hive -S -e "HiveQL"

4.另外一些常用的命令


#描述表结构

desc tablename;

 

#查看创建表信息

show create table tablename;

 

#查看表的分区

show partitions tablename;
基础命令


1    show databases;                    #查看某个数据库
2    use 数据库;                        #进入某个数据库
3    show tables;                       #展示所有表
4    desc 表名                            #显示表结构
5    show partitions 表名;                #显示表名的分区
6    show create table_name;            #显示创建表的结构
7
8    #建表语句
9    use xxdb; create table xxx;              #内部表    
10   create table xxx like xxx;        #创建一个表,结构与其他一样
     create table xxx as xxx;        #创建一个表,结构数据与其他一样,相当于复制一个表

11    use xxdb ;create external table xxx(1 int) partitoned by (d string)    #分区表
12    alter table table-name set TBLPROPROTIES('EXTERNAL'='TURE'); #内部表转外部表
13    alter table table-name set TBLPROPROTIES('EXTERNAL'='FALSE'); #外部表转内部表
14    
15    表结构修改
16    use xxxdb; alter table table_name rename to new_table_name;        #重命名表
17    alter table table_name add columns(newscol1 int conment '新增');    #增加字段
18    alter table table_name change col_name new_col_name new_type;        #修改字段
19    alter table table_name replace columns(col1 int,col2 string,col3string);    #删除字段(COLUMNS中只放保留的字段)
20    use xxxdb; drop table table_name;                                    #删除表
21

22    #删除分区
23    #注意:若是外部表,则还需要删除文件(hadoop fs -rm -r -f hdfspath)
24    alter table table_name drop if exists partitions (d='2016-07-01');

25    #字段类型
26    #tinyint ,smallint,int,bigint,float,decimal,boolean,string
27    #复合数据类型
28    #struct,array,map

 

复合数据类型


1    #array
2    create table person (name string ,work_locations array<string>)
3    ROW FORMAT DELIMITED
4    FIELDS TERMINATED BY '\t'
5    COLLECTION ITEMs TERMINATED BY ','

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值