0

我通过在 hive 命令提示符下设置以下属性创建了一个 Hive 表:

SET mapreduce.output.fileoutputformat.compress.codec=com.hadoop.compression.lzo.LzopCodec
SET hive.exec.compress.output=true
SET mapreduce.output.fileoutputformat.compress=true

创建表语句:

create external table dept_comp1(id bigint,code string,name string)  LOCATION '/users/JOBDATA/comp'  ;
insert overwrite table dept_comp select * from src__1;

现在我去这个位置 /users/JOBDATA/comp 并找到一个名为 000000_0.deflate 的文件

我不确定这是压缩文件,但当我下载它时,它不可读。如果是,那么为什么它没有 .lzo 扩展名?

如果不是,我在哪里可以找到 .lzo 文件?

最后我如何使用java解压它?谢谢

4

1 回答 1

-4

如果您打算在 hdfs 上节省磁盘空间,则可以使用 Snappycodec 压缩。有一些压缩格式,如 .bz,它们是可拆分的,并通过设置某些配置单元属性,如

SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET mapred.output.compression.type=BLOCK; 
于 2016-05-18T06:31:13.837 回答