• <tfoot id="ukgsw"><input id="ukgsw"></input></tfoot>
    
    • 久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
      分享

      Hadoop HDFS和KFS (CloudStore)的比較

       朱廣彬 2011-08-21

      HDFSKFS 比較

      By云深作者:Terry/Lanlan/Adam 20091

      轉(zhuǎn)載請注明出處

      1HDFS KFS 簡介

      兩者都是GFS的開源實現(xiàn),而HDFS Hadoop 的子項目,用Java實現(xiàn),為Hadoop上層應用提供高吞吐量的可擴展的大文件存儲服務。

      Kosmos filesystemKFS is a high performance distributed filesystem for web-scale applications such as, storing log data, Map/Reduce data etc. It builds upon ideas from Google‘s well known Google Filesystem project. C++實現(xiàn)

      本文選取的源碼版本如下:

      hadoop-0.17.2.1

      Kfs 0.2.2

      2HDFSKFS體系架構(gòu)

      1 體系架構(gòu)

      HDFSKFS都屬于分布式文件系統(tǒng),它們的元數(shù)據(jù)管理采用集中式方式實現(xiàn),數(shù)據(jù)實體先分片然后分布式存儲。本文先介紹這類系統(tǒng)的模塊組成以及各模塊的關(guān)鍵技術(shù),并以此為線索分析和比較HDFS的異同點。

      HDFSKFS大致有以下幾個模塊組成:

      MetaServer

      Namespace 管理

      Layout管理

      MetaImage管理

      Lease管理

      ChunkServer

      Chunk管理

      Chunk存儲

      Client Transaction Layer該部分是系統(tǒng)給上層應用提供的接口,本文不予比較。

      3HDFSKFS各模塊的關(guān)鍵技術(shù)

      HDFSKFS關(guān)鍵實現(xiàn)技術(shù)如下:

      MetaServer

      Namespace的組織和維護

      MetaData的序列化和加載

      系統(tǒng)恢復

      Chunk LayoutChunkServer選擇

      Lease的管理和維護

      ChunkServer

      Chunk存儲組織

      本地Chunk 信息的重建

      Chunk失效處理

      Client Transaction:文件操作

      4HDFSKFS MetaServer實現(xiàn)的比較(1

      Namespace的組織和維護

      HDFS Namespace的組織采用Component模式,文件夾、文件和Chunk組成如下層次結(jié)構(gòu)。

      Root /------|

      |-----/terry---|---/sub0

      |----file3---|---block0

      |---block1

      |-----/adam--|---/sub0

      |-------file0

      | --block2

      |-------tmpfile1

      |---block3

      |---block4

      KFS采用B+樹存放文件系統(tǒng)的結(jié)點信息,各結(jié)點存有父結(jié)點的索引,從而實現(xiàn)文件夾、文件和Chunk的層次關(guān)系。

      5HDFSKFS MetaServer實現(xiàn)的比較(2

      LayoutManagement實現(xiàn),包括Chunk Server選擇算法、負載均衡實現(xiàn)。

      Chunk Server選擇算法包括以下:

      Chunk 創(chuàng)建時,Chunk Server的選擇;

      Chunk 實際拷貝數(shù)與需求不一致時,Chunk的重拷貝和刪除問題。

      寫入的ChunkServer具備的基本條件如下:

      節(jié)點處于活躍期;

      節(jié)點有Chunk讀(拷貝源節(jié)點)或?qū)懀截惸繕斯?jié)點)并發(fā)的余量;

      節(jié)點網(wǎng)絡(luò)流量小于系統(tǒng)平均流量的兩倍;

      作為存儲點,節(jié)點有存儲余量;

      Chunk在該節(jié)點所屬Rack上的拷貝數(shù)沒到上限;

      基本原則:HDFS優(yōu)先保證前3份拷貝有兩份在一個Rack上,另一份在不同的Rack上;而KFS要求拷貝均勻分散在不同的Rack上。

      Chunk創(chuàng)建時,第一個存儲點的選擇問題:

      當創(chuàng)建ChunkClient上部署有Chunk Server時,HDFSKFS均優(yōu)先選擇該節(jié)點為首存儲點;

      否則,HDFS隨機選擇,KFS優(yōu)先選擇存儲和網(wǎng)絡(luò)負載較輕的節(jié)點。

      根據(jù)上述基本原則選擇其余節(jié)點。

      拷貝數(shù)小于需求時,HDFS根據(jù)基本原則選擇備用節(jié)點;KFS優(yōu)先選擇失效節(jié)點相同Rack上的節(jié)點;

      拷貝數(shù)大于需求時,HDFS根據(jù)基本原則刪除多余的LocationKFS優(yōu)先考慮拷貝的均勻分布,然后再根據(jù)節(jié)點的負載選擇失效拷貝。

      6HDFSKFS MetaServer實現(xiàn)的比較(3

      MetaServer根據(jù)Namespace中的chunk列表,將列表亂序,依此掃描chunk location信息,將存儲或網(wǎng)絡(luò)負載超過閾值的節(jié)點上的拷貝標志為失效,并轉(zhuǎn)存到負載較低的節(jié)點上。

      負載控制方面:HDFS任務分配較KFS精細;HDFS實現(xiàn)上有網(wǎng)絡(luò)流量控制,KFS沒有。

      實現(xiàn)方式上:HDFS使用多線程實現(xiàn)多任務并發(fā)執(zhí)行,而KFS使用Reactor模式實現(xiàn)多任務并發(fā)。

      7HDFSKFS MetaServer實現(xiàn)的比較(4

      Meta Image Management,包括FSImage和操作日志兩部分。

      HDFS FSImage結(jié)構(gòu)如圖2(新版本中刪除了DataNode Image部分)。

      2 HDFS FSImage

      KFS存儲元數(shù)據(jù)B+樹的葉子節(jié)點信息到磁盤上,并記錄該鏡像加載過程中需要合并的操作日志文件名。

      HDFS通過多目錄的同時備份,并記錄checkpoint時間。系統(tǒng)重啟時,通過檢查各目錄下鏡像信息以及中間文件存在狀態(tài),采取合理的策略恢復元數(shù)據(jù)信息,并生成新的元數(shù)據(jù)鏡像。

      KFS在本地存有不同版本的鏡像和操作日志,并通過一個硬鏈接指向最新的鏡像信息。啟動時,加載硬鏈接指向的鏡像文件,以及鏡像中存有的操作日志及其之后的所有的操作日志,恢復元數(shù)據(jù)。

      8HDFSKFS MetaServer實現(xiàn)的比較(5

      Lease的管理和維護-1

      HDFSKFS的鎖管理通過Lease方式來實現(xiàn),并且都在Chunk級別加鎖。

      HDFS僅對正在創(chuàng)建中文件擁有的Chunk加鎖,即只有寫鎖。并且文件刪除過程中,直接清除該文件上所有的鎖,使Lease renew操作失敗,中斷用戶的寫操作。

      KFS實現(xiàn)了讀和寫兩種鎖機制,可以多用戶并發(fā)讀,單用戶獨占寫,讀寫互斥。已加鎖的文件刪除時,將文件移動到Namespacedumpster目錄,待有鎖清除操作時,檢查相關(guān)文件的鎖信息,將無鎖的文件徹底刪除。

      HDFS實現(xiàn)的是實名鎖,記錄了客戶端信息;KFS采用的是匿名鎖,僅記錄了分配的Lease ID

      Lease的管理和維護-2

      HDFSChunkServer沒有鎖標志,MetaServer將寫鎖分配給Client,由Client刷新;

      KFS的實現(xiàn)相對復雜些。

      寫操作,MetaServer分配Chunk時,給Main ChunkServer分配writer-LeaseChunkServer接收到Client的寫操作時檢查并RenewLease

      讀操作,MetaServerClient分配Reader-Lease,Client根據(jù)讀的進度進行LeaseRenew操作;

      Lease的銷毀有兩種方式:

      定時器

      特定的操作關(guān)聯(lián)刪除

      鎖機制實現(xiàn)上,KFS相對完善些,但其匿名鎖方式也可能存在隱患。

      9HDFSKFS ChunkServer實現(xiàn)的比較(1

      ChunkServerChunk的存儲組織:

      l HDFSKFS都可以配置多個存儲目錄;

      l 在存儲目錄存儲空間配額允許的情況下,HDFS按照輪轉(zhuǎn)的方式將Chunk均勻的放置到各存儲目錄;KFS按照ChunkId和存儲目錄個數(shù)的模運算選擇存放目錄。

      l ChunkIdMetaServer統(tǒng)一分配,HDFS的放置方式較KFS均勻,chunk維護的過程中,要維護chunk到文件的映射。KFS的放置策略簡單,Chunk和文件之間的映射關(guān)系直接,但弊端也十分明顯,配置文件中的存儲目錄數(shù)目不能修改,否則系統(tǒng)將無法正常運作。KFS0.2.2中似乎并沒有解決這個問題。

      l 在同一個存儲目錄中,HDFS每級目錄最多64Chunk64個子目錄,組成層次結(jié)構(gòu)。存放時Chunk時,要求嵌套目錄的深度盡量小。KFS采用平面結(jié)構(gòu),所有Chunk存放在一個目錄下。根據(jù)底層文件系統(tǒng)實現(xiàn)機制,HDFS Chunk文件的定位速度較KFS快。

      l HDFS各工作目錄有文件鎖,避免多網(wǎng)元共享存儲目錄引發(fā)錯誤;KFS沒有該保護機制。

      10HDFSKFS ChunkServer實現(xiàn)的比較(2

      ChunkServerChunk存儲:

      l HDFS中,每個Chunk存放兩個文件,實體數(shù)據(jù)和Meta數(shù)據(jù);KFS存放為一份文件,Meta數(shù)據(jù)存放在前16K文件頭區(qū)域,實體數(shù)據(jù)存放在16k之后。

      l HDFSKFS默認的Chunk大小為64MMeta校驗碼部分均采用Adler_32算法。 HDFS根據(jù)配置,決定是否計算校驗碼,以及校驗塊的大小。 KFS16K數(shù)據(jù)計算一個32位校驗碼,存放在對應的Meta數(shù)據(jù)區(qū)域。

      l KFS16K的文件頭,在實現(xiàn)Truncate操作時,KFS0.2.2版本中似乎忽略了這部分數(shù)據(jù),Bug or not

      11HDFSKFS ChunkServer實現(xiàn)的比較(3

      本地Chunk 信息的重建:

      l HDFSKFS均通過掃描本地工作目錄,重建內(nèi)存中的Chunk管理數(shù)據(jù);

      l HDFSChunkServer中沒有Chunk鏡像和操作日志記錄;KFS中有這部分實現(xiàn),在ChunkServer上存儲Chunk鏡像信息和操作日志,并實現(xiàn)了啟動時對鏡像和操作日志的加載功能。但是這部分代碼沒有調(diào)用,也許廢棄了。

      12HDFSKFS ChunkServer實現(xiàn)的比較(4

      Chunk失效處理

      l HDFSChunkServer通過定期的HeartbeatMetaServer匯報本地Chunk列表,或者完成Chunk寫操作后,向MetaServer匯報新寫入的Chunk信息。MetaServer根據(jù)狀態(tài),向ChunkServer分發(fā)Chunk復制任務或者Chunk失效信息等。HDFS接收到失效信息后,刪除Chunk文件;

      l KFS:啟動時或者在讀操作ChunkSum錯誤時,向MetaServer匯報Chunk信息。MetaServer刪除Chunk有兩類操作:DeleteStale。前者由Client觸發(fā),后者由ChunkServer匯報錯誤觸發(fā)。Delete操作下,ChunkServer直接刪除chunk文件;Stale操作下,ChunkServerChunk轉(zhuǎn)移到./lost+found目錄下。但KFS0.2.2中沒有對./lost+found目錄中的文件做進一步處理,也許改進版本中會用到。

      13HDFSKFS Chunk寫流程上的區(qū)別(1

      HDFS Chunk 寫流程,如圖3

      3 HDFS Chunk 寫流程

      14HDFSKFS Chunk寫流程上的區(qū)別(2

      KFS Chunk 寫流程,如圖4

      4 KFS Chunk 寫流程

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多

        主站蜘蛛池模板: 福利免费观看体检区| 精品无码日韩国产不卡AV| 中文国产成人精品久久不卡| 久久丫精品国产亚洲AV不卡| 精品人无码一区二区三区| 亚洲人成无码网站18禁| 日韩av片无码一区二区不卡| 久久毛片少妇高潮| 高清破外女出血AV毛片| 老司机午夜精品视频资源| 无码天堂亚洲国产AV| 国产丰满美女A级毛片| 国产精品中文字幕在线| 无码免费大香伊蕉在人线国产| 亚洲 都市 无码 校园 激情| 又色又爽又黄的视频网站| 永久黄网站色视频免费直播| 欧美成人午夜在线观看视频| 四虎永久在线精品免费一区二区| 国产中文三级全黄| 成人久久免费网站| 久久亚洲道色宗和久久| jizzjizz少妇亚洲水多| 熟睡人妻被讨厌的公侵犯 | 欧美成人午夜在线观看视频| 国产亚洲一区二区在线观看 | 免费看女人与善牲交| 国模吧无码一区二区三区| 2020国产欧洲精品网站| 亚洲AV日韩AV不卡在线观看| 亚洲人成小说网站色在线| 无遮挡H肉动漫在线观看 | 日韩欧美不卡一卡二卡3卡四卡2021免费 | 亚洲制服无码一区二区三区| 久久亚洲精品无码播放| 天天夜碰日日摸日日澡性色AV| 亚洲自偷自拍另类小说| 最新中文字幕国产精品| 精品国产AV无码一道| 欧美精品人人做人人爱视频| 亚洲欧美国产日韩天堂区|