Hadoop实战-初级部分 之 Hadoop IO(三)
figuration 2. 获取 File System 3. 设置文件输出路径 4. SequenceFile.Reader 创建读取类 SequenceFile.Reader 5. 拿到 Key 与 Value 的 class 6. 读取 MapFile MapFile 是经过排序的带索引的 SequenceFile ,可以根据键值进行查找 . 由两部分组成,分别是 data 和 index 。 index 作为文件的数据索引,主要记录了每个 Record 的 key 值,以及该 Record 在文件中的偏移位置。在 MapFile 被访问的时候 , 索引 文件会被加载到内存,通过索引映射关系可迅速定位到指定Record 所在文件位置, 因此,相对 SequenceFile 而言, MapFile 的检索效率是高效的,缺点是会消耗一部分 内存来存储 index 数据 . 需注意的是, MapFile 并不会把所有 Record 都记录到 index 中去,默认情况下每 隔 128 条记录存储一个索引映射。当然,记录间隔可人为修改,通过MapFIle.Writer 的 setIndexInterval() 方法,或修改 io.map.index.interval 属性; 另外,与 SequenceFile 不同的是, MapFile 的 KeyClass 一定要实现WritableComparable 接口 , 即 Key 值是可比较的。 转载请注明出处【 http://sishuok.com/forum/blogPost/list/0/5460.
html 】