1 查看我的hadoop支撑的压缩方式

hdfs 配置控制台收索: io.compression.codecs
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图1
可见没有LzopCodec方式
CDH中默认不支持Lzo压缩编码,需要下载额外的Parcel包,才能让Hadoop相关组件如HDFS,Hive,Spark支持Lzo编码。

2 LzoCodec和LzopCodec区别

  1. LzoCodecLzopCodec区别
  2. 两种压缩编码LzoCodecLzopCodec区别:
  3. 1. LzoCodecLzopCodec更快, LzopCodec为了兼容LZOP程序添加了如 bytes signature, header等信息。
  4. 2. LzoCodec作为Reduce输出,结果文件扩展名为 ”.lzo_deflate ,无法被lzop读取;使用LzopCodec作为Reduce输出,生成扩展名为 ”.lzo 的文件,可被lzop读取。
  5. 3. LzoCodec结果(.lzo_deflate文件) 不能由 lzo index job "DistributedLzoIndexer" 创建index
  6. 4. “.lzo_deflate 文件不能作为MapReduce输入。而这些 “.LZO 文件都支持。
  7. 综上所述,map输出的中间结果使用LzoCodecreduce输出使用 LzopCodec
  8. 另外:org.apache.hadoop.io.compress.LzoCodeccom.hadoop.compression.lzo.LzoCodec功能一样,都是源码包中带的,生成的都是 lzo_deflate 文件。

3 在线Parcel安装Lzo

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


CDH6:https://archive.cloudera.com/gplextras6/6.x.x/parcels/
我的版本是 CDH6.3.1 所以我的下载地址就是
https://archive.cloudera.com/gplextras6/6.3.1/parcels/
在CDH的 Parcel 配置中,“远程Parcel存储库URL”,点击 “+” 号,添加地址栏
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图2
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图3
返回Parcel列表 可能需要一段时间会看到 GPLEXTRAS 因为国外的网站可能我们的网络连接比较延迟
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图4

3.2 下载

点击:Download
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图5
分配
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图6
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图7
激活
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图8
激活成功
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图9

3.3 为HDFS添加压缩编码解码器

hdfs 配置控制台收索: io.compression.codecs
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图10
点击 “+” 号添加:

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

CDH6.3.2 在线安装 hadoop Lzo压缩 - 图11

3.4 YARN配置自动加载GPLEXTRAS下的包

① 找到自己刚才安装的GPLEXTRAS目录

/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图12

②配yarn

收索:mapreduce.application.classpath
CDH6.3.2 在线安装 hadoop Lzo压缩 - 图13

② 添加/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/*

CDH6.3.2 在线安装 hadoop Lzo压缩 - 图14

③ 更新配置重启服务

CDH6.3.2 在线安装 hadoop Lzo压缩 - 图15
然后完成