8.6 存储和压缩的结合
8.6.1 修改 Hadoop 支持 Snappy 压缩方式
具体参照前面的 Hadoop 源码编译 不要忘记 Hadoop 需要分发到整个集群
检测是否支持 Snappy 压缩方式.
hadoop checknative
步骤1: 创建一个非压缩的 ORC 格式的表
create table log_orc_none(
track_time string,
url string,
session_id string,
referer string,
ip string,
end_user_id string,
city_id string
)
row format delimited
fields terminated by '\t'
stored as orc
tblproperties ("orc.compress"="NONE");
向表中插入数据:
insert into table log_orc_none select * from log_text;
注意:
不压缩的情况下
orc
文件有 7.7M, 但是前面测试的是2.8M左右, 为什么呢?因为对于
orc
文件, 如果没有指定不压缩, 则默认使用的是 ZLIB 压缩方式压缩的.
步骤2: 创建一个使用 Snappy 压缩的 ORC 格式的表
create table log_orc_snappy(
track_time string,
url string,
session_id string,
referer string,
ip string,
end_user_id string,
city_id string
)
row format delimited
fields terminated by '\t'
stored as orc
tblproperties ("orc.compress"="SNAPPY");
导入数据:
insert into table log_orc_snappy select * from log_text ;
总结:
在实际的项目开发当中,Hive表的数据存储格式一般选择:orc 或 parquet。压缩方式一般选择 Snappy,lzo。