《Hadoop权威指南:大数据的存储与分析》—5.4.2 关于MapFile

举报
清华大学出版社 发表于 2019/10/12 22:18:25 2019/10/12
【摘要】 本节书摘来自清华大学出版社《Hadoop权威指南:大数据的存储与分析》一书中第五章,第5.4.2节,作者是Tom White , 王 海 华 东 刘 喻 吕粤海 译。

5.4.2  关于MapFile

MapFile是已经排过序的SequenceFile,它有索引,所以可以按键查找。索引自身就是一个SequenceFile,包含了map中的一小部分键(默认情况下,是每隔128个键)。由于索引能够加载进内存,因此可以提供对主数据文件的快速查找。主数据文件则是另一个SequenceFile,包含了所有的map条目,这些条目都按照键顺序进行了排序。

MapFile提供了一个用于读写的、与SequenceFile非常类似的接口。需要注意的是,当使用MapFile.Writer进行写操作时,map条目必须顺序添加,否则会抛出IOException异常。

1. MapFile的变种

Hadoop在通用的键-值对MapFile接口上提供了一些变种。

l    SetFile是一个特殊的MapFile,用于存储Writable键的集合。键必须按照排好的顺序添加。

 

l    ArrayFile也是一个MapFile变种,该变种中的键是一个整型,用于表示数组中元素的索引,而值是一个Writable值。

 

l    BloomMapFile也是一个MapFile变种,该变种提供了get()方法的一个高性能实现,对稀疏文件特别有用。该实现使用一个动态的布隆过滤器来检测某个给定的键是否在map文件中。这个测试非常快,因为是在内存中完成的,但是该测试结果出现假阳性的概率大于零。仅当测试通过时(键存在),常规的get()方法才会被调



【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。