Hive 采用ORC格式的LZO压缩

Hive 采用ORC格式的LZO压缩,hive,lzo,Hive,Lzo,我正在尝试将一些非常大的配置单元表从文本格式转换为ORC格式,希望它占用更少的存储空间,查询速度更快。因为我们使用LZO作为整个庄园的压缩,所以我也尝试将其用于ORC格式 如果你们能提供任何帮助,我将不胜感激 我正在使用Hadoop2.4.0和Hive0.13.1 根据以下链接,似乎可以将LZO压缩与ORC格式一起使用: 但当我做类似的事情时 create table sa_orc_lzo stored as orc tblproperties ("orc.compress"="LZO"

我正在尝试将一些非常大的配置单元表从文本格式转换为ORC格式,希望它占用更少的存储空间,查询速度更快。因为我们使用LZO作为整个庄园的压缩,所以我也尝试将其用于ORC格式

如果你们能提供任何帮助,我将不胜感激

我正在使用Hadoop2.4.0和Hive0.13.1

根据以下链接,似乎可以将LZO压缩与ORC格式一起使用:

但当我做类似的事情时

create table sa_orc_lzo 
stored as orc  tblproperties ("orc.compress"="LZO")  
as select * from sa;
我得到以下错误:

Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"data".......}
at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:550)
at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:177)

**Caused by: java.lang.IllegalArgumentException: LZO is not available.
at org.apache.hadoop.hive.ql.io.orc.WriterImpl.createCodec**(WriterImpl.java:200)
at org.apache.hadoop.hive.ql.io.orc.WriterImpl.<init>(WriterImpl.java:175)
at org.apache.hadoop.hive.ql.io.orc.OrcFile.createWriter(OrcFile.java:369)
at org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat$OrcRecordWriter.write(OrcOutputFormat.java:83)
at org.apache.hadoop.hive.ql.exec.FileSinkOperator.processOp(FileSinkOperator.java:649)
at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:793)
at org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:87)
at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:793)
at org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:92)
at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:793)
at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:540)
... 9 more
**Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.io.orc.LzoCodec**

不幸的是,你不能。有人需要实现org.apache.hadoop.hive.ql.io.orc.LzoCodec,但还没有实现。当我写《兽人》的时候,我把钩子放进去了,我打算回到它上面,但我还没有。现在,我的事情太多了。我的建议是改用Snappy。Snappy的速度几乎和LZO一样快,而且效果非常好


之所以没有这样做,部分原因是LZO是GPL'ed,因此对它的任何绑定都必须在GPL下释放。由于Apache许可证与GPL不兼容,因此无法在Apache上托管绑定。

有人能帮我解决这个问题吗?非常感谢您的指导。随着ORC项目的实施,您现在可以使用LZO了。ORC项目的版本在Hive2.3及更高版本中使用。只要稍加努力,您就可以将其与Hive2.1和Hive2.2一起使用