Hadoop概念學習系列之分布式檔案系統(三十)

2021-09-09 02:12:40 字數 3269 閱讀 4497

不多說,直接上乾貨!

常見的分布式檔案系統有,gfs、hdfs、lustre 、ceph 、gridfs 、mogilefs、tfs、fastdfs等。各自適用於不同的領域。它們都不是系統級的分布式檔案系統,而是應用級的分布式檔案儲存服務。

google學術**,這是眾多分布式檔案系統的起源

google file system(大規模分散檔案系統)

mapreduce (大規模分散framework)

bigtable(大規模分散資料庫)

chubby(分散鎖服務)

一般你搜尋google_三大**中文版(bigtable、 gfs、 google mapreduce)就有了。

gfs(google file system)

google公司為了滿足本公司需求而開發的基於linux的專有分布式檔案系統。。儘管google公布了該系統的一些技術細節,但google並沒有將該系統的軟體部分作為開源軟體發布。

下面分布式檔案系統都是類 gfs的產品

hdfs

hadoop 實現了乙個分布式檔案系統(hadoop distributed file system),簡稱hdfs。 hadoop是apache lucene創始人doug cutting開發的使用廣泛的文字搜尋庫。它起源於apache nutch,後者是乙個開源的網路搜尋引擎,本身也是luene專案的一部分。aapche hadoop架構是mapreduce演算法的一種開源應用,是google開創其帝國的重要基石。

ceph

是加州大學聖克魯茲分校的sage weil攻讀博士時開發的分布式檔案系統。並使用ceph完成了他的**。

可是ceph太不成熟了,它基於的btrfs本身就不成熟,它的官方**上也明確指出不要把ceph用在生產環境中。

lustre

lustre是乙個大規模的、安全可靠的,具備高可用性的集群檔案系統,它是由sun公司開發和維護的。

該專案主要的目的就是開發下一代的集群檔案系統,可以支援超過10000個節點,數以pb的資料量儲存系統。

目前lustre已經運用在一些領域,例如hp sfs產品等。

適合儲存小檔案、的分布檔案系統研究

用於等小檔案大規模儲存的分布式檔案系統調研

架構高效能海量伺服器的技術要素

nginx效能改進一例(全部存入google的leveldb)

fastdfs分布檔案系統

tfs(taobao file system)安裝方法

動態生成 nginx + graphicsmagick

mogilefs

mogilefs是一套高效的檔案自動備份元件,由six apart開發,廣泛應用在包括livejournal等web2.0站點上。

mogilefs由3個部分組成:

第1個部分是server端,包括mogilefsd和mogstored兩個程式。前者即是 mogilefsd的tracker,它將一些全域性資訊儲存在資料庫裡,例如站點domain,class,host等。後者即是儲存節點(store node),它其實是個http daemon,預設偵聽在7500埠,接受客戶端的檔案備份請求。在安裝完後,要執行mogadm工具將所有的store node註冊到mogilefsd的資料庫裡,mogilefsd會對這些節點進行管理和監控。

第2個部分是utils(工具集),主要是mogilefs的一些管理工具,例如mogadm等。

第3個部分是客戶端api,目前只有perl api(mogilefs.pm)、php,用這個模組可以編寫客戶端程式,實現檔案的備份管理功能。

moosefs

持fuse,相對比較輕量級,對master伺服器有單點依賴,用perl編寫,效能相對較差,國內用的人比較多

moosefs與mogilefs的效能測試對比

fastdfs

是一款類似google fs的開源分布式檔案系統,是純c語言開發的。

官方論壇 

fastdfs google code    

分布式檔案系統fastdfs架構剖析  

tfs

tfs(taobao !filesystem)是乙個高可擴充套件、高可用、高效能、面向網際網路服務的分布式檔案系統,主要針對海量的非結構化資料,它構築在普通的linux機器 集群上,可為外部提供高可靠和高併發的儲存訪問。tfs為**提供海量小檔案儲存,通常檔案大小不超過1m,滿足了**對小檔案儲存的需求,被廣泛地應用 在**各項應用中。它採用了ha架構和平滑擴容,保證了整個檔案系統的可用性和擴充套件性。同時扁平化的資料組織結構,可將檔名對映到檔案的實體地址,簡化 了檔案的訪問流程,一定程度上為tfs提供了良好的讀寫效能。

官網 :

gridfs檔案系統

mongodb是一種知名的nosql資料庫,gridfs是mongodb的乙個內建功能,它提供一組檔案操作的api以利用mongodb儲存檔案,gridfs的基本原理是將檔案儲存在兩個collection中,乙個儲存檔案索引,乙個儲存檔案內容,檔案內容按一定大小分成若干塊,每一塊存在乙個document中,這種方法不僅提供了檔案儲存,還提供了對檔案相關的一些附加屬性(比如md5值,檔名等等)的儲存。檔案在gridfs中會按4mb為單位進行分塊儲存。

mongodb gridfs 資料讀取效率 benchmark

nginx + gridfs 實現的分布式儲存  安裝(一年後出問題了)

基於mongodb gridfs的儲存

nginx+mongodb-gridfs+squid

詳情請見:p/7473861.html

對應本平台的討論和答疑qq群:大資料和人工智慧躺過的坑(總群)(161156071)

Spark SQL概念學習系列之分布式SQL引擎

不多說,直接上乾貨!parksql作為分布式查詢引擎 兩種方式 除了在spark程式裡使用spark sql,我們也可以把spark sql當作乙個分布式查詢引擎來使用,有以下兩種使用方式 1.thrift jdbc odbc服務 2.cli sparksql作為分布式查詢引擎 thrift jdb...

Spark SQL概念學習系列之分布式SQL引擎

不多說,直接上乾貨!parksql作為分布式查詢引擎 兩種方式 除了在spark程式裡使用spark sql,我們也可以把spark sql當作乙個分布式查詢引擎來使用,有以下兩種使用方式 1.thrift jdbc odbc服務 2.cli sparksql作為分布式查詢引擎 thrift jdb...

Hadoop概念學習系列之談談RPC(三十三)

不多說,直接上乾貨!rpc 遠端過程呼叫協議,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc使得開發包括網路分布式多程式在內的應用程式...