Lzo是目前Hadoop平台使用很广泛的压缩格式,但需要另外安装,在这里记录一下。

使用的版本是Centos7.3,CDH6.0.1。

官方安装文档

官方配置文档

 

 查看Hadoop支持的压缩格式

hadoop checknative

 

LzoCodec和LzopCodec区别

两种压缩编码LzoCodec和LzopCodec区别:
    1. LzoCodec比LzopCodec更快, LzopCodec为了兼容LZOP程序添加了如 bytes signature, header等信息。
    2. LzoCodec作为Reduce输出,结果文件扩展名为 ”.lzo_deflate” ,无法被lzop读取;使用LzopCodec作为Reduce输出,生成扩展名为 ”.lzo” 的文件,可被lzop读取。
    3. LzoCodec结果(.lzo_deflate文件) 不能由 lzo index job 的 "DistributedLzoIndexer" 创建index。
    4. “.lzo_deflate” 文件不能作为MapReduce输入。而这些 “.LZO” 文件都支持。
        综上所述,map输出的中间结果使用LzoCodec,reduce输出使用 LzopCodec。

另外:org.apache.hadoop.io.compress.LzoCodec和com.hadoop.compression.lzo.LzoCodec功能一样,都是源码包中带的,生成的都是 lzo_deflate 文件。


在线Parcel安装Lzo

下载地址:修改6.x.y为对应版本

CDH6:https://archive.cloudera.com/gplextras6/6.x.y/parcels/ 

CDH5:https://archive.cloudera.com/gplextras5/parcels/5.x.y/

1. 在CDH的 Parcel 配置中,“远程Parcel存储库URL”,点击 “+” 号,添加地址栏:

    CDH6:https://archive.cloudera.com/gplextras6/6.0.1/parcels/

    CDH5:http://archive.cloudera.com/gplextras/parcels/latest/

其他离线方式:

下载parcel放到 /opt/cloudera/parcel-repo 目录下

或者

搭建httpd,更改parcel URL地址,再在按远程安装

CDH6安装Lzo_lzo

2. 返回Parcel列表,延迟几秒后会看到多出了 GPLEXTRAS(CDH6) 或者 HADOOP_LZO (CDH5),

下载 -- 分配 -- 激活。

CDH6安装Lzo_hadoop_02

3. 安装完LZO后,打开HDFS配置,找到“压缩编码解码器”,点击 “+” 号,

添加:

com.hadoop.compression.lzo.LzoCodec
com.hadoop.compression.lzo.LzopCodec

CDH6安装Lzo_cloudera_03

4. YARN配置,找到 “MR 应用程序 Classpath”(mapreduce.application.classpath)

添加:

/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/*

CDH6安装Lzo_hadoop_04

5. 重启更新过期配置