(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數據文件都是面向行的存儲方式,即每一行的數據在存儲文件中是連續。
按列存儲。文件中的行被分割成行的分片,而後每一行的第一列在文件中連續存儲。
本身開發了一個股票智能分析軟件,功能很強大,須要的點擊下面的連接獲取: