hive使基本使用

文章目录

  • 1.hive创建表
  • 2.查看建表语句
  • 2.hive使用load加载数据到表中
  • 3.hive删除表数据
  • 4.hive查看版本信息

1.hive创建表

0: jdbc:hive2://10.0.xxx.162:10000/default> create table myname2 (ids int,names string);

2.查看建表语句

0: jdbc:hive2://10.0.xxx.162:10000/default> show create table myname2;
+------------------------------------------------------------------------------+
|                                 createtab_stmt                               |
+------------------------------------------------------------------------------+
| CREATE  TABLE myname2(                                                       |
|   ids int DEFAULT NULL,                                                      |
|   names string DEFAULT NULL                                                  |
| )                                                                            |
| ROW FORMAT SERDE                                                             |
|   'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'                       |
| WITH SERDEPROPERTIES (                                                       |
|   'serialization.format'='1')                                                |
| STORED AS INPUTFORMAT                                                        |
|   'org.apache.hadoop.mapred.TextInputFormat'                                 |
| OUTPUTFORMAT                                                                 |
|   'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'               |
| LOCATION                                                                     |
|   'hdfs://nameservice1/inceptor2/user/hive/warehouse/lcc_two.db/hive/myname2 |
| TBLPROPERTIES (                                                              |
|   'transient_lastDdlTime'='1539805597')                                      |
+------------------------------------------------------------------------------+
16 rows selected (0.178 seconds)
0: jdbc:hive2://10.0.xxx.162:10000/default>

2.hive使用load加载数据到表中

创建表

create table test2 (id int,name string)row format delimited fields terminated by ','; 

load本地数据到表

load data local inpath "/inceptor1/tmp/bb.txt" overwrite into table test;

load远程hdfs数据到表

load data  inpath "/inceptor1/tmp/bb.txt" overwrite into table test;

区别:一个没带local

报错集锦

报错1

Failed with exception Unable to move source hdfs://maeter:8000/usr/local/hadoop/input/test_hive/test

是因为hive执行的时候,对hdfs的访问权限不够
执行:

 hadoop fs -chmod -R 755 /tmp
 hadoop fs -chmod -R  777/usr

3.hive删除表数据

hive删除数据
按分区删除:

ALTER TABLE test1  DROP PARTITION (dt='2016-04-29');

删除符合条件的数据:

insert overwrite table t_table1 select * from t_table1 where XXXX;

其中xxx是你需要保留的数据的查询条件。

insert overwrite table tlog_bigtable  PARTITION (dt='2017-12-20',game_id = 'id')
select * from tlog_bigtable t
where t.dt = '2017-12-20'
and t.event_time < '2017-12-20 20:00:00'
and t.game_id = 'id'

清空表:

insert overwrite table t_table1 select * from t_table1 where 1=0;
删除表
DROP TABLE [IF EXISTS] table_name  ;
不删除表,清空表数据,清空表的时候是删除表的文件,但是即使你配置了hdfs回收站,也不会被回收,truncate 不能删除外部表!因为外部表里的数据并不是存放在Hive Meta store中
TRUNCATE TABLE table_name;

4.hive查看版本信息

lcc@lcc apache-hive-2.1.0-bin$ find /Users/lcc/soft/hive/apache-hive-2.1.0-bin  -name "*hive-exec*.jar"
/Users/lcc/soft/hive/apache-hive-2.1.0-bin/lib/hive-exec-2.1.0.jar
lcc@lcc apache-hive-2.1.0-bin$

hive-exec一般就是版本号

你可能感兴趣的:(大数据-hive)