2015年05月06日 13:37:22 大数据部 阅读数 3232更多
本文链接:https://blog.csdn.net/BDCHome/article/details/45534687
GZIP为Linux系统中最常用的压缩格式,创建GZIP压缩格式的HIVE表具体步骤如下。
1、以 STORED AS TEXTFILE 为存储格式创建HIVE表
CREATE TABLE TRACKLOG (
DATEDAY STRING COMMENT "日期",
IP STRING COMMENT "IP",
COOKIEID STRING COMMENT "用户COOKIE",
USERID STRING COMMENT "用户ID",
LOGSERVERIP STRING COMMENT "记录日志服务器IP",
REFERER STRING COMMENT "来源 :用户浏览网页的REFER",
REQUESTURL STRING COMMENT "访问网址 : 当前访问网址"
) PARTITIONED BY(DAY STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE ;
2、TEXTFILE格式可使用普通文本格式数据、也可使用GZIP的压缩格式,HIVE做自动解压GZIP的格式。
3、GZIP的压缩方法:
压缩当前目录下所有的 *.dat 文件
gzip *.dat
4、装载数据到HIVE分区表中
LOAD DATA LOCAL INPATH
'/DISKG/BIGDATA/10-0-251-146/TRACKLOG/20150123*.DAT'
OVERWRITE INTO TABLE TRACKLOG PARTITION (DAY='20150123');
或者通过mapreduce加载数据,需要先设置hive的压缩参数:
set hive.enforce.bucketing=true;
set hive.exec.compress.output=true;
set mapred.output.compress=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;
insert overwrite table trackloggzip
PARTITION (day='20150124')
select
dateday, datetime ,ip,cookie ,userid
,logserverip ,source ,requesturl ,remark1
,remark2,alexaflag ,ua , wirelessflag
from tracklog where day='20150124';
5、删除一个分区
ALTER TABLE TRACKLOG DROP PARTITION(DAY='20130823')
6、GZIP的压缩,有着较好的通用性(LINUX系统中最常用的压缩方式),及良好的压缩比率(经测试文本压缩为23%),同时SPARK-SQL也能完美支持GZIP的格式。