在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>存儲設備>SAN網(wǎng)絡存儲>

壓縮方式 - 揭秘:RCFile高效存儲結構

2011年05月03日 11:01 本站整理 作者:Spring 用戶評論(0
壓縮方式

  RCFile的每個行組中,元數(shù)據(jù)頭部和表格數(shù)據(jù)段分別進行壓縮。

  對于所有元數(shù)據(jù)頭部,RCFile使用RLE(Run Length Encoding)算法來壓縮數(shù)據(jù)。由于同一列中所有域的長度值都順序存儲在該部分,RLE算法能夠找到重復值的長序列,尤其對于固定的域長度。

  表格數(shù)據(jù)段不會作為整個單元來壓縮;相反每個列被獨立壓縮,使用Gzip壓縮算法。RCFile使用重量級的Gzip壓縮算法,是為了獲得較好的壓縮比,而不使用RLE算法的原因在于此時列數(shù)據(jù)非排序。此外,由于Lazy壓縮策略,當處理一個行組時,RCFile不需要解壓所有列。因此,相對較高的Gzip解壓開銷可以減少。

  盡管RCFile對表格數(shù)據(jù)的所有列使用同樣的壓縮算法,不過如果使用不同的算法來壓縮不同列或許效果會更好。RCFile將來的工作之一可能就是根據(jù)每列的數(shù)據(jù)類型和數(shù)據(jù)分布來自適應選擇最好的壓縮算法。

  數(shù)據(jù)追加

  RCFile不支持任意方式的數(shù)據(jù)寫操作,僅提供一種追加接口,這是因為底層的HDFS當前僅僅支持數(shù)據(jù)追加寫文件尾部。數(shù)據(jù)追加方法描述如下。

  RCFile為每列創(chuàng)建并維護一個內(nèi)存column holder,當記錄追加時,所有域被分發(fā),每個域追加到其對應的column holder。此外,RCFile在元數(shù)據(jù)頭部中記錄每個域對應的元數(shù)據(jù)。

  RCFile提供兩個參數(shù)來控制在刷寫到磁盤之前,內(nèi)存中緩存多少個記錄。一個參數(shù)是記錄數(shù)的限制,另一個是內(nèi)存緩存的大小限制。

  RCFile首先壓縮元數(shù)據(jù)頭部并寫到磁盤,然后分別壓縮每個column holder,并將壓縮后的column holder刷寫到底層文件系統(tǒng)中的一個行組中。

  數(shù)據(jù)讀取和Lazy解壓

  在MapReduce框架中,mapper將順序處理HDFS塊中的每個行組。當處理一個行組時,RCFile無需全部讀取行組的全部內(nèi)容到內(nèi)存。

  相反,它僅僅讀元數(shù)據(jù)頭部和給定查詢需要的列。因此,它可以跳過不必要的列以獲得列存儲的I/O優(yōu)勢。例如,表tbl(c1, c2, c3, c4)有4個列,做一次查詢“SELECT c1 FROM tbl WHERE c4 = 1”,對每個行組,RCFile僅僅讀取c1和c4列的內(nèi)容。在元數(shù)據(jù)頭部和需要的列數(shù)據(jù)加載到內(nèi)存中后,它們需要解壓。元數(shù)據(jù)頭部總會解壓并在內(nèi)存中維護直到RCFile處理下一個行組。然而,RCFile不會解壓所有加載的列,相反,它使用一種Lazy解壓技術。

  Lazy解壓意味著列將不會在內(nèi)存解壓,直到RCFile決定列中數(shù)據(jù)真正對查詢執(zhí)行有用。由于查詢使用各種WHERE條件,Lazy解壓非常有用。如果一個WHERE條件不能被行組中的所有記錄滿足,那么RCFile將不會解壓WHERE條件中不滿足的列。例如,在上述查詢中,所有行組中的列c4都解壓了。然而,對于一個行組,如果列c4中沒有值為1的域,那么就無需解壓列c1。

  行組大小

  I/O性能是RCFile關注的重點,因此RCFile需要行組夠大并且大小可變。行組大小和下面幾個因素相關。

  行組大的話,數(shù)據(jù)壓縮效率會比行組小時更有效。根據(jù)對Facebook日常應用的觀察,當行組大小達到一個閾值后,增加行組大小并不能進一步增加Gzip算法下的壓縮比。

  行組變大能夠提升數(shù)據(jù)壓縮效率并減少存儲量。因此,如果對縮減存儲空間方面有強烈需求,則不建議選擇使用小行組。需要注意的是,當行組的大小超過4MB,數(shù)據(jù)的壓縮比將趨于一致。

  盡管行組變大有助于減少表格的存儲規(guī)模,但是可能會損害數(shù)據(jù)的讀性能,因為這樣減少了Lazy解壓帶來的性能提升。而且行組變大會占用更多的內(nèi)存,這會影響并發(fā)執(zhí)行的其他MapReduce作業(yè)。考慮到存儲空間和查詢效率兩個方面,F(xiàn)acebook選擇4MB作為默認的行組大小,當然也允許用戶自行選擇參數(shù)進行配置。

  小結

  本文簡單介紹了RCFile存儲結構,其廣泛應用于Facebook公司的數(shù)據(jù)分析系統(tǒng)Hive中。首先,RCFile具備相當于行存儲的數(shù)據(jù)加載速度和負載適應能力;其次,RCFile的讀優(yōu)化可以在掃描表格時避免不必要的列讀取,測試顯示在多數(shù)情況下,它比其他結構擁有更好的性能;再次,RCFile使用列維度的壓縮,因此能夠有效提升存儲空間利用率。

  為了提高存儲空間利用率,F(xiàn)acebook各產(chǎn)品線應用產(chǎn)生的數(shù)據(jù)從2010年起均采用RCFile結構存儲,按行存儲(SequenceFile/TextFile)結構保存的數(shù)據(jù)集也轉存為RCFile格式。此外,Yahoo公司也在Pig數(shù)據(jù)分析系統(tǒng)中集成了RCFile,RCFile正在用于另一個基于Hadoop的數(shù)據(jù)管理系統(tǒng)Howl(http://wiki.apache.org/pig/Howl)。而且,根據(jù)Hive開發(fā)社區(qū)的交流,RCFile也成功整合加入其他基于MapReduce的數(shù)據(jù)分析平臺。有理由相信,作為數(shù)據(jù)存儲標準的RCFile,將繼續(xù)在MapReduce環(huán)境下的大規(guī)模數(shù)據(jù)分析中扮演重要角色。

非常好我支持^.^

(4) 100%

不好我反對

(0) 0%

( 發(fā)表人:Spring )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?
      主站蜘蛛池模板: 亚洲人与牲动交xxxxbbbb | 亚洲第一区视频 | 国产在线高清精品二区色五郎 | 久久精品免费 | 免费在线观看一级片 | 五月婷婷影院 | kkkbo色综合 lsj老司机精品视频在线观看 | 亚洲福利一区二区 | 成年啪啪网站免费播放看 | 国模吧一区二区三区精品视频 | 国产经典一区 | 欧美在线天堂 | yy6080一级毛片高清 | 国产精品视频久久久久 | ccav在线永久免费看 | 国产精品你懂的 | 国产精品女仆装在线播放 | 速度与激情在线 | 在线a免费| 国产一级做a爰片久久毛片男 | 日本www在线观看 | 九九午夜| 色天天干| 欧美女同网站 | 嫩草影院入口一二三免费 | 日本黄色免费电影 | 国产一级久久免费特黄 | 国产成人永久在线播放 | www.天天射.com | 婷婷色香五月激情综合2020 | 奇米狠狠干| 日日日天天射天天干视频 | 日韩精品在线第一页 | 狠狠色丁香婷婷综合激情 | 台湾一级毛片 | 操妞网 | 丁香花在线视频观看免费 | 都市激情综合网 | bt种子磁力天堂torrent | 久久99爰这里有精品国产 | 韩国十八禁毛片无遮挡 |