Hadoop LZO 的使用

LZO压缩格式,不支持hadoop平台,需要安装hadoop-lzo组件,才可以让hadoop平台使用LZO压缩格式!

1、安装组件

将hadoop-lzo-0.4.20.jar 放入hadoop-2.7.2/share/hadoop/common/,之后分发到集群!

2、配置core-site.xml

<property>
<name>io.compression.codecs</name>
<value>
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec
</value>
</property>

<property>
    <name>io.compression.codec.lzo.class</name>
    <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

2.1 Lzo 与 Lzop

①LZOP依赖于LZO,LZOP是LZO的升级版

②LZO是原生的LZO压缩格式,不支持切片!

LZOP在LZO的基础上允许我们使用一个为压缩文件创建索引的程序,为每个压缩文件生成索引。

           -------基于索引,对压缩文件进行切片!

如果使用了LZOP但是,没有创建索引,也是无法切片!

③LZO压缩格式,生成的压缩文件的后缀名为.lzo.deflate

LZOP压缩格式,生成的压缩文件的后缀为.lzo

④如果MR程序的输入,读取的.lzo.deflate格式的数据,那么可能出现乱码

 

扫描二维码关注公众号,回复: 10229027 查看本文章

总结: 在shuffle阶段,可以使用lzo,但是在reduce的输出和map的输入阶段,使用lzop!

3、使用命令操作

3.1 压缩输出文件

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount \
-Dmapreduce.output.fileoutputformat.compress=true \
-Dmapreduce.output.fileoutputformat.compress.codec=com.hadoop.compression.lzo.LzopCodec \
/data /output

-D   xxxxx    意味着给这条命令附上属性值,这里就是开启压缩和设置lzop压缩格式

3.2输入文件为lzo格式

3.2.1在文件目录下建立索引

hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20.jar  com.hadoop.compression.lzo.DistributedLzoIndexer /output/part-r-00000.lzo

3.2.2 测试

猜你喜欢

转载自www.cnblogs.com/yangxusun9/p/12584383.html
LZO