第7章 Hadoop I/O操作
本章内容
I/O操作中的数据检查
数据的压缩
数据的I/O中序列化操作
针对Mapreduce的文件类
本章小结
Hadoop工程下与I/O相关的包如下:
org. apache.hadoop.io
org. apache.hadoop.io.compress
org. apache.hadoop.io.file.tfile
org. apache.hadoop.io.serializer
org. apache.hadoop.io.serializer.avro
除了org.apache.hadoop.io.serializer.avro用于为Avro(与Hadoop相关的Apache的另一个顶级项目)提供数据序列化操作外,其余都是用于Hadoop的I/O操作。
除此以外,部分fs类中的内容也与本章有关,所以本章也会提及一些,不过大都是一些通用的东西,由于对HDFS的介绍不是本章的重点,在此不会详述。
可以说,Hadoop的I/O由传统的I/O操作而来,但是又有些不同。第一,在我们常见的计算机系统中,数据是集中的,无论多少电影、音乐或者Word文档,它只会存在于一台主机中,而Hadoop则不同,Hadoop系统中的数据经常是分散在多个计算机系统中的;第二,一般而言,传统计算机系统中的数据量相对较小,大多在GB级别,而Hadoop处理的数据经常是PB级别的。
变化就会带来问题,这两个变化带给我们的问题就是Hadoop的I/O操作不仅要考虑本地主机的I/O操作成本,还要考虑数据在不同主机之间的传输成本。同时Hadoop的数据寻址方式也要改变,才能应对庞大数据带来的寻址压力。
虽说Hadoop的I/O操作与传统方式已经有了一些变化,但是仍未脱离传统的数据I/O操作,因此如果熟悉传统的I/O操作,你会发现本章的内容非常简单。