保证数据完整性
校验技术。 
 客户端读取数据节点上的数据时,会验证校验和,将其与数据节点上存储的校验和进行对比。HDFS通过复制完整的副本来产生一个新的,无错的副本来“治愈”哪些出错的数据块。工作方式:如果客户端读取数据块时检测到错误,抛出ChecksumException前报告该坏块以及它试图从名称节点中读取的数据节点。名称节点将这个块标记为损坏的,不会直接复制给客户端或复制该副本到另一个数据节点。它会从其他副本复制一个新的副本。 
 ChecksumFileSystem类实现校验工作
压缩技术
压缩技术好处,减少数据存储空间,提供磁盘和网络的传输速度。 
 在考虑如何压缩那些将由MapReduce处理的数据时,考虑压缩格式是否支持分割是很重要的。 
 编码/解码器类型: 
 DEFLATE org.apache.hadoop.io.compress.DefaultCodec 不可分割 
 •gzip org.apache.hadoop.io.compress.GzipCodec 不可分割 
 •bzip2 org.apache.hadoop.io.compress.Bzip2Codec 可分割 
 •LZO com.hadoop.compression.lzo.LzopCodec 可分割 
 •CompressionCodec 对流进行进行压缩与解压缩 
 •CompressionCodecFactory 方法来推断CompressionCodec 
 MR中使用压缩 
 1、读取压缩文件 
 如果文件是压缩过的,那么在被MapReduce读取时,它们会被解压,根据文件的扩展名来选择应该使用哪一种压缩解码器。如果压缩的文件没有扩展名,则需 要在执行mapreduce任务的时候指定输入格式.
2、MapReduce的作业输出压缩文件 
 conf.setBoolean(“mapred.output.compress’,true) 
 Conf.setClass(“mapred.output.compression.codec”,GizpCodec.class,CompressionCodec.class);
3、Map作业输出中间结果的压缩 
 因为Map作业的中间结果会输出到本地,并在网络上传递。所以压缩能获得更好性能,因为传播的数据减少了。 
 conf.setBoolean(“mapred.compress.map.output”, true); 
 conf.setClass(“mapred.map.output.compression.codec”,GzipCodec.class, CompressionCodec.class); 
                










