hive常用命令

1.把内部表设置成外部表:
alter table table_name set TBLPROPERTIES ('EXTERNAL'='TRUE');
2.查看Hadoop的hdfs文件
hadoop fs -text | more
3.查看外部表信息
describe extended table_name
4.创建外部表
CREATE EXTERNAL TABLE IF NOT EXISTS table_name(id int,name string)
        partitioned by(day string)
row format delimited fields terminated by '|';
5.加载hdfs数据到表中
alter table telno_app_times ADD IF NOT EXISTS PARTITION(day="20140317") location "/useapptimes/";
6.查看分区
show partitions tb_test;
  添加分区
alter table telno_app_times ADD IF NOT EXISTS PARTITION(day="20140317")
  删除分区
    ALTER TABLE login DROP IF EXISTS PARTITION (dt='2008-08-08');
    ALTER TABLE DROP PARTITION 来删除分区。分区的元数据和数据将被一并删除
7.加载数据到指定分区表
load data local inpath'/root/hcr/tmp/sample.txt' into table tb_test partition(ds='2013-12-06',ds2='shanghai')
8.修改表名rename to
alter table tb_records_ctas rename totb_records_2
9.增加新列
alter table tb_records_2 add columns(new_col int);
10.修改某一列的信息
        ALTER TABLE tb_records_2 CHANGE COLUMN new_col col1  string;
11.数据导出
导出到本地目录
insert overwrite local directory'/root/hcr/tmp/ex_abc2.txt' select * from m_t2;
导出到hdfs目录
insert overwrite directory'/user/houchangren/tmp/m_t2' select * from m_t2;
11.1 hive 导出数据
bin/hive -e "select * from table" >> res.csv
12.用jdbc连接hive之前一定要启动hiveserver;命令:
hive -service hiveserver &
hive --service metastore     -----------Startup Hive Embedded
bin/hive --service hiveserver-----------Startup Hive Standalone
13.hive部分优化
hive查询limit优化
set hive.limit.optimize. enable=true;
hive数据倾斜优化
set hive.groupby.skewindata=true;
14.采用RCFile 方式压缩历史数据。FackBook全部hive表都用RCFile存数据。
二、局部压缩方法
只需要两步:
1.创建表时指定压缩方式,默认不压缩,以下为示例:
create external table track_hist(
id bigint, url string, referer string, keyword string, type int, gu_idstring,
…/*此处省略中间部分字段*/ …, string,ext_field10 string)
partitioned by (ds string) stored as RCFile location '/data/share/track_histk' ;

2.插入数据是设定立即压缩
SET hive.exec.compress.output=true;
insert overwrite table track_histpartition(ds='2013-01-01')
select id,url, …/*此处省略中间部分字段*/ …, ext_field10 fromtrackinfo
where ds='2013-01-01';

你可能感兴趣的:(hive,hive命令,常用shell命令)