教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Sequence File是什么?簡單介紹幾種文件儲存格式

更新時間:2021年03月11日15時58分 來源:傳智教育 瀏覽次數:


問題分析

Hadoop可以存儲多種文件格式。Sequence File這個格式需要知道。

核心答案講解

  • sequenceFile文件是Hadoop用來存儲二進制形式的[Key,Value]對而設計的一種平面文件(Flat File)。
  • 可以把SequenceFile當做是一個容器,把所有的文件打包到SequenceFile類中可以高效的對小文件進行存儲和處理。
  • SequenceFile文件并不按照其存儲的Key進行排序存儲,SequenceFile的內部類Writer提供了append功能。
  • SequenceFile中的Key和Value可以是任意類型Writable或者是自定義Writable。
  • 在存儲結構上,SequenceFile主要由一個Header后跟多條Record組成,Header主要包含了Key classname,value classname,存儲壓縮算法,用戶自定義元數據等信息,此外,還包含了一些同步標識,用于快速定位到記錄的邊界。每條Record以鍵值對的方式進行存儲,用來表示它的字符數組可以一次解析成:記錄的長度、Key的長度、Key值和value值,并且Value值的結構取決于該記錄是否被壓縮。

問題擴展

HDFS文件存儲格式

  • TEXTFILE

Hive數據表的默認格式,存儲方式:行存儲??梢允褂肎zip壓縮算法,但壓縮后的文件不支持split。在反序列化過程中,必須逐個字符判斷是不是分隔符和行結束符,因此反序列化開銷會比SequenceFile高幾十倍。

  • SEQUENCEFILE

壓縮數據文件可以節(jié)省磁盤空間,但Hadoop中有些原生壓縮文件的缺點之一就是不支持分割。支持分割的文件可以并行的有多個mapper程序處理大數據文件,大多數文件不支持可分割是因為這些文件只能從頭開始讀。Sequence File是可分割的文件格式,支持Hadoop的block級壓縮。
Hadoop API提供的一種二進制文件,以key-value的形式序列化到文件中。存儲方式:行存儲。
sequencefile支持三種壓縮選擇:NONE,RECORD,BLOCK。Record壓縮率低,RECORD是默認選項,通常BLOCK會帶來較RECORD更好的壓縮性能。
優(yōu)勢是文件和hadoop api中的MapFile是相互兼容的。

  • RCFILE

存儲方式:數據按行分塊,每塊按列存儲。結合了行存儲和列存儲的優(yōu)點,RCFile 保證同一行的數據位于同一節(jié)點,因此元組重構的開銷很低,像列存儲一樣,RCFile 能夠利用列維度的數據壓縮,并且能跳過不必要的列讀取。
數據追加:RCFile不支持任意方式的數據寫操作,僅提供一種追加接口,這是因為底層的 HDFS當前僅僅支持數據追加寫文件尾部。
行組大?。盒薪M變大有助于提高數據壓縮的效率,但是可能會損害數據的讀取性能,因為這樣增加了 Lazy 解壓性能的消耗。而且行組變大會占用更多的內存,這會影響并發(fā)執(zhí)行的其他MR作業(yè)。 考慮到存儲空間和查詢效率兩個方面,Facebook 選擇 4MB 作為默認的行組大小,當然也允許用戶自行選擇參數進行配置。

  • ORCFILE

存儲方式:數據按行分塊,每塊按照列存儲。壓縮快,快速列存取。效率比rcfile高,是rcfile的改良版本。

結合項目中使用

SequenceFile壓縮率最低,查詢速度一般。項目中存儲小的二進制文件,用Sequence File這個格式。


猜你喜歡:

Hadoop集群格式化【大數據技術文章】

hadoop虛擬機如何安裝和配置JDK?

企業(yè)中處理數據的兩種主要方式(Hadoop、Storm)

傳智教育大數據開發(fā)培訓

0 分享到:
和我們在線交談!