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