亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

分布式文件系統(tǒng)KFS基礎(chǔ)知識(shí)介紹

系統(tǒng) 1636 0

Kosmos distributed file system,簡(jiǎn)稱KFS,是一個(gè)類GFS的分布式文件系統(tǒng),被設(shè)計(jì)用于分布式的結(jié)構(gòu)化存儲(chǔ)。下面將對(duì)KFS的體系結(jié)構(gòu)進(jìn)行簡(jiǎn)單介紹,最后給出一個(gè)使用KFS C++ API的示例。

1. KFS體系結(jié)構(gòu)

KFS和GFS的整體結(jié)構(gòu)類似,圖中所示為GFS的體系結(jié)構(gòu)圖(來(lái)自于Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung的論文“The Google File System”):

分布式文件系統(tǒng)KFS基礎(chǔ)知識(shí)介紹

?

KFS系統(tǒng)由三部分組成,分別是metaserver(相當(dāng)于GFS master)、chunkserver(相當(dāng)于GFS chunkserver)和client library(相當(dāng)于GFS client):

  • metaserver:元數(shù)據(jù)服務(wù)器,使用B+樹(shù)存儲(chǔ)分布式文件系統(tǒng)的全局文件系統(tǒng)命名空間,一個(gè)KFS中僅有一個(gè)metaserver;
  • chunkserver: 一個(gè)大文件被切分成許多固定大小的文件塊block,文件塊block被以chunk的方式存儲(chǔ)在獨(dú)立的chunkserver上,每個(gè) chunkserver上可能存不同文件的block,一個(gè)block會(huì)被存在不同的chunkserver上(默認(rèn)為3份);在一個(gè)KFS中,有一系列 的chunkserver,chunkserver將chunk存儲(chǔ)在底層的文件系統(tǒng)(如Linux的XFS、EXT2);
  • client library:提供文件系統(tǒng)訪問(wèn)的API,使應(yīng)用可以通過(guò)接口操縱KFS;在將實(shí)際的應(yīng)用和KFS集成起來(lái)時(shí),需要在應(yīng)用中包含KFS的客戶端庫(kù)文件。

下面以KFS client端對(duì)某一文件的訪問(wèn)為例,說(shuō)明KFS的工作流程。假設(shè)該文件名為/kfs/testdata,分為以下幾步完成:

  • client端以該路徑名/kfs/testdata為參數(shù),向metaserver發(fā)出請(qǐng)求;
  • metaserver將該文件對(duì)應(yīng)的文件屬性信息返回到client端;
  • client端將文件名和對(duì)應(yīng)的文件偏移(file name, chunk index)為關(guān)鍵字發(fā)送給metaserver;
  • metaserver對(duì)所管理的各chunkserver進(jìn)行分析,將擁有該偏移塊的(chunk handle, chunk locations)返回給client端;
  • client端以(chunk handle, byte range)為關(guān)鍵字,向相應(yīng)的chunkserver發(fā)送數(shù)據(jù)讀寫(xiě)請(qǐng)求;
  • chunkserver返回對(duì)應(yīng)數(shù)據(jù)區(qū)段的chunk data給client端;
  • client端得到chunk data。

2. KFS API調(diào)用

KFS 支持的客戶端包括有C++、Java和Python,以C++為例,KFS客戶端API調(diào)用的一般過(guò)程如下:首先,調(diào)用 getKfsClientFactory()->SetDefaultClient(serverHost, port)方法,獲取一個(gè)KfsClient類型的指針;然后,通過(guò)這個(gè)KfsClient類型的指針,調(diào)用所需的文件系統(tǒng)的函數(shù)(如創(chuàng)建目錄、刪除目 錄、創(chuàng)建文件、刪除文件、獲取文件信息等)。

下面給出一個(gè)示例,通過(guò)調(diào)用KFS的C++ API,得到文件的stat信息(該代碼不能直接運(yùn)行):

      
         1
      
      
        using
      
      
        namespace
      
      
         KFS;
        
2 using namespace KFS::tools;
3 KfsFileStat statInfo;
4 KfsClientPtr kfsClient = getKfsClientFactory() -> SetDefaultClient(serverHost, port);
5 if ( ! kfsClient) {
6 cout << " failed to initialize kfs client! " << endl;
7 exit( 0 );
8 }
9 if (verboseLogging) {
10 KFS::MsgLogger::SetLevel(log4cpp::Priority::DEBUG);
11 } else {
12 KFS::MsgLogger::SetLevel(log4cpp::Priority::WARN);
13 }
14 if (kfsClient -> Stat(kfsPath, statInfo) < 0 ) {
15 cout << " KFS path: " << kfsPath << " is non-existent! " << endl;
16 exit( - 1 );
17 }

有關(guān)其他文件系統(tǒng)訪問(wèn)接口的調(diào)用方法與上述示例類似,具體可參考kfs目錄下examples子目錄中的C++ example代碼以及Java example代碼。

分布式文件系統(tǒng)KFS基礎(chǔ)知識(shí)介紹


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产视频一区二 | 亚洲欧美久久一区二区 | 欧美最大成人毛片视频网站 | 亚洲欧美国产18 | 中文字幕亚洲色图 | 四虎精品在线视频 | 最近在线更新中文字幕1 | 久久综合久久自在自线精品自 | 2021久久伊人精品中文字幕有 | 精品久久久久久中文字幕女 | 毛茸茸的浓密在线视频 | 伊人久久大香线蕉综合bd高清 | 91久久99热青草国产 | 久草在在线视频 | 欧美国产综合日韩一区二区 | 久久精品啪啪嗷嗷叫 | 久草免费在线视频 | 一七六九1769视频免费观看 | 欧美大屁股精品毛片视频 | 日日添天天做天天爱 | 成年女人18毛片毛片免费 | 久热中文字幕在线观看 | 99热这里只有精品9 99热这里只有精品99 | 一区二区三区中文国产亚洲 | 亚色91| 国产aaaaaa| 麻豆日韩| 亚洲成人18| 国产chinesehd在线观看 | 拍拍拍无挡视频免费观看1000 | 波多野吉衣一区二区三区在线观看 | 在线免费毛片 | 一级特黄色大片 | 久久综合综合久久 | 精品精品国产高清a毛片 | 国产高清不卡一区二区 | 久久88香港三级台湾三级中文 | 夜色视频网站 | 亚洲区欧美 | 日本人一级毛片视频 | 四虎永久精品免费网址大全 |