Hadoop(十九)MapReduce OutputFormat 数据压缩

OutputFormat

  • OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口
  • 几种常见的OutputFormat实现类:NullOutputFormat、MapFileOutputFormat、TextOutputFormat等

自定义OutputFormat

  • 应用场景:输出数据到MySQL/HBase/Elasticsearch等存储框架中
  • 步骤:自定义一个类继承FileOutputFormat —> 改写RecordWriter,具体改写输出数据的方法write()

数据压缩

一、概述

  • 优点:减少磁盘IO和存储空间
  • 缺点:增加CPU开销
  • 压缩原则:运算密集型的作业少用压缩;IO密集型的作业多用压缩

二、MR支持的压缩编码

压缩格式 是否Hadoop自带 算法 文件扩展名 是否可切片 换成压缩格式后,原来的程序是否需要修改 优点 缺点
DEFLATE 是,直接使用 DEFLATE .deflate 和文本处理一样,不需要修改
Gzip 是,直接使用 DEFLATE .gz 和文本处理一样,不需要修改 压缩率比较高 不支持Split;压缩/解压速度一般
bzip2 是,直接使用 bzip2 .bz2 和文本处理一样,不需要修改 压缩率高;支持Split 压缩/解压速度慢
LZO 否,需要安装 LZO .lzo 需要建索引,还需要指定输入格式 压缩/解压速度比较快;支持Split 压缩率一般;想支持切片需要额外创建索引
Snappy 是,直接使用 Snappy .Snappy 和文本处理一样,不需要修改 压缩和解压缩速度快 不支持Split;压缩率一般
  • 压缩方式选择时重点考虑:压缩/解压缩速度、压缩率(压缩后存储大小)、压缩后是否可以支持切片
  • 压缩可以在MapReduce作用的任意阶段启用
posted @   一年都在冬眠  阅读(26)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示