一、HDFS数据完整性保证
1、DataNode在读取和写入的时候验校验和
2、后台线程DataBlockScanner 也会检查校验和
3、若检查到检验和错误,则报告namenode,自动进行删除、复制、恢复操作。
二、压缩
1、好处:减少存储的磁盘空间;加速数据在网络和磁盘上的传输。
2、支持切分的压缩:bzip2 (LZO不支持)
3、Map任务中进行压缩,可以减少数据量,提升性能。
三、序列化
1、序列化用途:远程通信、持久存储。
2、Writable接口:实现 write (DataOutput out), readFields(DataInput in) 方法。
3、WriteComparable 接口:
4、Writable 类:IntWritable、VintWritable、LongWritable、VlongWritable、FloatWritable、DoubleWritable、BooleanWritable、Text、BytesWritable、NullWritable、ObjectWritable
5、Writable集合:ArrayWritable、TwoDArrayWritable、MapWritable、SortedMapWritable
四、基于文件的数据结构
1、SequenceFile
用途:(1)、记录二进制类型;(2)、将小文件包装起来,获得更高效率的存储和处理。
2、MapFile
MapFile 就是已经排序的SequenceFile,加入了用于搜索键的索引。