带块压缩的序列文件



我需要启用带有块压缩数据的序列文件。下面是将作为SequenceFile存储的表。

create table lip_data_quality
( buyer_id bigint,
  total_chkout bigint,
  total_errpds bigint
 )
 partitioned by (dt string)
row format delimited fields terminated by 't'
stored as sequencefile
location '/apps/hdmi-technology/b_apdpds/lip-data-quality'
;

在上表中,我通过启用以下命令来获得压缩格式的数据-

set mapred.output.compress=true;
set mapred.output.compression.type=BLOCK;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.LzoCodec;

所以我的问题是,这就是我启用序列文件块压缩所需要的全部内容?或者我还有什么需要做的吗?我在关注这篇文章Hadoop

任何建议都将不胜感激。

更新:-

我像这样加载上表中的数据,方法是将所有内容放入.hql file中,并从shell命令提示符运行该hql file。并在每次运行下面的hql文件时更改分区日期。

set mapred.output.compress=true;
set mapred.output.compression.type=BLOCK;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.LzoCodec;
insert overwrite table lip_data_quality partition (dt='20120712') 
SELECT query here which will give the output for the above table.

那应该没问题。您也可以通过查看HDFS上的文件来验证它。加载后,HDFS中应该有一个名为/user/hive/wwarehouse/lip_data_quality/dt=20120712的目录。如果你运行

hadoop fs -cat

在该文件夹中的一个文件上,你应该能够看到文件的标题,这将为你提供文件的基本信息。

在提交作业之前设置以下属性。

  • setProperty(job,"mapred.output.compress","true")
  • setProperty(作业,"mapred.output.compression.type","BLOCK")
  • setProperty(作业,"mapred.output.compression.codec","org.apache.hoop.io.compress.DefaultCodec")

使用DefaultCodec,可以使用org.apache.hadoop.io.com.press.LzoCodec;

相关内容

  • 没有找到相关文章

最新更新