MapReduce数据压缩机制

压缩目的:

    降低数据磁盘存储空间,减少传输数据的IO量
    压缩追求的指标:
            压缩时间   越短越好
            压缩化   越大越好
            硬件需求如:CPU 算法支持
   mr中可以使用压缩的地方:
            map的输出数据进行数据压缩,减少shuff给reduce的数据量    
            reduce的输出进行数据压缩,减少最终结果在磁盘存储所占的空间
   检查Hadoop支持的压缩算法:
            
[root@node-1 ~]# hadoop checknative
Native library checking:
hadoop: true /export/servers/hadoop-2.6.0cdh5.14.0/lib/native/libhadoop.so.1.0.0
zlib: true /lib64/libz.so.1
snappy: true /usr/lib64/libsnappy.so.1
lz4: true revision:10301
bzip2: true /lib64/libbz2.so.1
openssl: true /usr/lib64/libcrypto.so
如果某一个算法流失,可以在线yum在线装,或者重新编译Hadoop 
 

推荐压缩算法:

Snappy

mr中怎样使用压缩:

    在mapReduce程序中进行设置,影响当前mr程序
    在mapreduce-site.xml进行配置,影响所有的mr程序

MapReduce常见算法:

  • 单词计数
  • 数据去重
  • 排序
  • Top K
  • 选择
  • 投影
  • 分组
  • 多表连接
  • 单表关联

总结:

  • 在Hadoop中,codec由CompressionCode的实现来表示。下面是一些实现:
  • 输出的压缩属性:

  • 输出的压缩属性代码实现



猜你喜欢

转载自www.cnblogs.com/TiePiHeTao/p/225e91b6bf460e7bc20d86c4502a8a88.html