(1)定义html
MapFile即为排序后的SequeneceFile,将sequenceFile文件按照键值进行排序,而且提供索引实现快速检索。数组
(2)索引spa
索引取值是每隔128(默认128,可经过io.map.index.interval来修改)个键取一个键组成,将索引加载到内存,实现对mapfile文件的快速检索。命令行
(3)读写htm
很是相似sequenceFile,只须要换成MapFile.Reader和MapFile.Writer就能够了。执行文件写操做的时候,该文件是不可读取的。MapFile文件保证key-value的有序(基于key)是经过每一次写入key-value时的检查机制,这种检查机制其实很简单,就是保证当前正要写入的key-value与上一个刚写入的key-value符合设定的顺序。不符合key的非递减顺序,会直接报错,有序是按顺序写入,不是自动的去对输入的key-value排序。blog
在命令行显示mapFile的文件内容一样要用 -text排序
(4)SequenceFile转mapFile索引
mapFile既然是排序和索引后的SequenceFile那么天然能够把SequenceFile转换为MapFile使用mapFile.fix()方法把一个SequenceFile文件转换成MapFile。内存
(5)mapFile的变种ci
SetFile |
存储writable的键 |
ArrayFile |
键是整型,表示数组中的索引,值为writable |
BlooMapFile |
使用动态布隆过滤器来检测键是否在map中。 |
(6)面向列的存储方式
按行存储。顺序文件、map文件和Avro数据文件都是面向行的存储方式,即每一行的数据在存储文件中是连续。
按列存储。文件中的行被分割成行的分片,而后每一行的第一列在文件中连续存储。
本身开发了一个股票智能分析软件,功能很强大,须要的点击下面的连接获取: