hadoop中使用lzo压缩详解

1、简介

  • 规则:
    lzo压缩不是hadoop中自带的,需要安装
    可以切分,但是需要建立

  • 优点:
    压缩/解压速度比较快,合理的压缩率;支持 split,是 hadoop 中最流行的压缩格式;可以在 linux 系统下安装 lzop 命令,使用方便。

  • 缺点:
    压缩率比 gzip 要低一些; hadoop 本身不支持,需要安装;在应用中对 lzo 格式的文件需要做一些特殊处理(为了支持 split 需要建索引,还需要指定 inputformat 为 lzo 格式)。

  • 应用场景:
    一个很大的文本文件,压缩之后还大于 200M 以上的, 而且用的比较频繁,可以考虑,而且单个文件越大, lzo 优点越越明显。

lzo编译安装详解: https://blog.csdn.net/weixin_46122692/article/details/109825440

hadoop集群支持压缩详解: https://blog.csdn.net/weixin_46122692/article/details/109846130


2、将用lzop压缩后的数据上传到hdfs中

cd /data/hadoop/hadoop/
bin/hadoop fs -mkdir /input
bin/hadoop fs -put /data/mydata/bigdata.lzo /input

3、直接运行一下WC看看效果

bin/hadoop jar /data/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output

hadoop中使用lzo压缩详解_第1张图片
这个lzo文件有153m,默认的块大小是128m,那么应该是有两个块,我们通过运行mapreduce程序发现,只有一个切分,需要进行下面的步骤才行。

4、利用编译好的lzo为lzo压缩文件创建索引

bin/hadoop jar /data/hadoop/hadoop/share/hadoop/common/hadoop-lzo-0.4.21.jar com.hadoop.compression.lzo.DistributedLzoIndexer /input

hadoop中使用lzo压缩详解_第2张图片

5、再次执行WC

bin/hadoop jar /data/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output1

hadoop中使用lzo压缩详解_第3张图片

你可能感兴趣的:(Hadoop,hadoop)