Hadoop 資料類型與檔案結構剖析 Sequence, Map, Set, Array, BloomMap Files_Hadoop

來源:互聯網
上載者:User

今天要推薦的一篇文章發表在知名雲端儲存體提供者 Cloudera 的部落格,本文細緻且圖文並茂地講解了 Hadoop 的幾種典型檔案結構及他們之前的關係。NoSQLFan 將主要內容翻譯整理如下(如有錯漏,歡迎指正): 1.Hadoop’s SequenceFile

SequenceFile 是 Hadoop 的一個重要資料檔案類型,它提供key-value的儲存,但與傳統key-value儲存(比如hash表,btree)不同的是,它是appendonly的,於是你不能對已存在的key進行寫操作。每一個key-value記錄如下圖,不僅儲存了key,value值,也儲存了他們的長度。

SequenceFile 有三種壓縮態: Uncompressed – 未進行壓縮的狀態 Record Compressed - 對每一條記錄的value值進行了壓縮(檔案頭中包含上使用哪種壓縮演算法的資訊) Block-Compressed – 當資料量達到一定大小後,將停止寫入進行整體壓縮,整體壓縮的方法是把所有的keylength,key,vlength,value 分別合在一起進行整體壓縮

檔案的壓縮態標識在檔案開頭的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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.