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

全國(guó)咨詢/投訴熱線:400-618-4000

Sequence File是什么?簡(jiǎn)單介紹幾種文件儲(chǔ)存格式

更新時(shí)間:2021年03月11日15時(shí)58分 來(lái)源:傳智教育 瀏覽次數(shù):


問(wèn)題分析

Hadoop可以存儲(chǔ)多種文件格式。Sequence File這個(gè)格式需要知道。

核心答案講解

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

問(wèn)題擴(kuò)展

HDFS文件存儲(chǔ)格式

  • TEXTFILE

Hive數(shù)據(jù)表的默認(rèn)格式,存儲(chǔ)方式:行存儲(chǔ)??梢允褂肎zip壓縮算法,但壓縮后的文件不支持split。在反序列化過(guò)程中,必須逐個(gè)字符判斷是不是分隔符和行結(jié)束符,因此反序列化開(kāi)銷(xiāo)會(huì)比SequenceFile高幾十倍。

  • SEQUENCEFILE

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

  • RCFILE

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

  • ORCFILE

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

結(jié)合項(xiàng)目中使用

SequenceFile壓縮率最低,查詢速度一般。項(xiàng)目中存儲(chǔ)小的二進(jìn)制文件,用Sequence File這個(gè)格式。


猜你喜歡:

Hadoop集群格式化【大數(shù)據(jù)技術(shù)文章】

hadoop虛擬機(jī)如何安裝和配置JDK?

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

傳智教育大數(shù)據(jù)開(kāi)發(fā)培訓(xùn)

0 分享到:
和我們?cè)诰€交談!