Hadoop 数据类型与文件结构剖析 Sequence, Map, Set, Array, BloomMap Files
今天要推薦的一篇文章發(fā)表在知名云存儲提供商 Cloudera 的博客,本文細(xì)致且圖文并茂地講解了 Hadoop 的幾種典型文件結(jié)構(gòu)及他們之前的關(guān)系。NoSQLFan?將主要內(nèi)容翻譯整理如下(如有錯漏,歡迎指正):
1.Hadoop’s?SequenceFile
SequenceFile 是 Hadoop 的一個重要數(shù)據(jù)文件類型,它提供key-value的存儲,但與傳統(tǒng)key-value存儲(比如hash表,btree)不同的是,它是appendonly的,于是你不能對已存在的key進(jìn)行寫操作。每一個key-value記錄如下圖,不僅保存了key,value值,也保存了他們的長度。
SequenceFile 有三種壓縮態(tài):
文件的壓縮態(tài)標(biāo)識在文件開頭的header數(shù)據(jù)中。
在header數(shù)據(jù)之后是一個Metadata數(shù)據(jù),他是簡單的屬性/值對,標(biāo)識文件的一些其他信息。Metadata 在文件創(chuàng)建時就寫好了,所以也是不能更改的。
2.MapFile, SetFile, ArrayFile 及 BloomMapFile
SequenceFile 是Hadoop 的一個基礎(chǔ)數(shù)據(jù)文件格式,后續(xù)講的 MapFile, SetFile, ArrayFile 及 BloomMapFile 都是基于它來實現(xiàn)的。
- MapFile?– 一個key-value 對應(yīng)的查找數(shù)據(jù)結(jié)構(gòu),由數(shù)據(jù)文件/data 和索引文件 /index 組成,數(shù)據(jù)文件中包含所有需要存儲的key-value對,按key的順序排列。索引文件包含一部分key值,用以指向數(shù)據(jù)文件的關(guān)鍵位置。
- SetFile?– 基于 MapFile 實現(xiàn)的,他只有key,value為不可變的數(shù)據(jù)。
- ArrayFile?– 也是基于 MapFile 實現(xiàn),他就像我們使用的數(shù)組一樣,key值為序列化的數(shù)字。
- BloomMapFile?– 他在 MapFile 的基礎(chǔ)上增加了一個 /bloom 文件,包含的是二進(jìn)制的過濾表,在每一次寫操作完成時,會更新這個過濾表。
原文鏈接:Hadoop I/O: Sequence, Map, Set, Array, BloomMap Files
相關(guān)鏈接:
1.圖形化理解 HBase 數(shù)據(jù)寫操作、壓縮操作過程
2.HBase 文件結(jié)構(gòu)圖
from:?http://blog.nosqlfan.com/html/1217.html
總結(jié)
以上是生活随笔為你收集整理的Hadoop 数据类型与文件结构剖析 Sequence, Map, Set, Array, BloomMap Files的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop的调度器总结
- 下一篇: 2013年中国数据库大会PPT