Hadoop I/O

  1. Hadoop配备了一套的基本数据I/O操作,例如数据的压缩,数据完成行。但由于需要考虑大数据的问题,hadoop也自己开发了例如序列化框架,在磁盘的数据结构
  2. 数据完整性,通常使用计算一个checksum,在原始数据和之后的数据传输中,通常使用CRC-32,HDFS使用更高效的方法CRC-32C
  3. 在hdfs的数完整性(Data Integrity)中,每512个字节都会进行checksum,一个CRC-32C占用4个字节,因此仅仅少于百分1的占用。
  4. Datanodes负责检验数据checksum,在他们存储数据前。DataNodes维持一个持久话的检验和日志。
  5. LocalFileSystem当你创建一个文件filename时,将会默认的建一个隐藏文件.filename.crc在相同的目录下,包含这个文件每个块的checksums,默认是512字节。chunk的size也会作为元数据记录在这个文件中,当读取文件被读取时,将会检验checksum,如果不一致,将会抛出一个checksumexception。RawLocalFileSystem可以关闭检验和,使用ChecksumFileSystem可以获取文件的检验和
  6. 压缩:文件的压缩主要有两大优点,节约空间,加快传输速度。所有的压缩方法都是在空间和时间的权衡,快速的解压和压缩方法,往往会导致空间的变大。使用压缩工具-1表示速度最快,-9表示空间最优。
  7. .gzip是时间和空间的一种平均化,bzip2压缩的更好,但时间长。bzip2的解压速度比他的压缩速度快,但仍然慢于其他速度。lzo压缩速度特别快,但空间就占用的比较大了
  8. 在hadoop的压缩中,看到了平常的解决方式,和工厂设计模式,池设计模式,这些有时间可以再去看看。
  9. 书中建议把对record的压缩,改成对block的压缩。为什么呢?

 

posted @ 2016-03-04 19:24  dalu610  阅读(177)  评论(0编辑  收藏  举报