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。