成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大數據那些事(2):三駕馬車之永垂不朽的GFS

大數據 數據分析
但凡是要開始講大數據的,都繞不開最初的Google三駕馬車:Google File System(GFS), MapReduce,BigTable。如果我們拉長時間軸到20年為一個周期來看呢,這三駕馬車到今天的影響力其實已然不同。

 

[[174344]]

 

但凡是要開始講大數據的,都繞不開最初的Google三駕馬車:Google File System(GFS), MapReduce,BigTable。如果我們拉長時間軸到20年為一個周期來看呢,這三駕馬車到今天的影響力其實已然不同。

MapReduce作為一個有很多優點又有很多缺點的東西來說,很大程度上影響力已經釋微了。BigTable以及以此為代表的各種KeyValue Store還有著它的市場,但是在Google內部Spanner作為下一代的產品,也在很大程度上開始取代各種各樣的的BigTable的應用。而作為這一切的基礎的Google File System,不但沒有任何倒臺的跡象,還在不斷的演化,事實上支撐著Google這個龐大的互聯網公司的一切計算。

作為開源最為成功的Hadoop Ecosystem來說,這么多年來風起云涌,很多東西都在變。但是HDFS的地位卻始終很牢固。盡管各大云計算廠商都基于了自己的存儲系統實現了HDFS的接口,但是這個文件系統的基本理念至今并無太多改變。

那么GFS到底是什么呢?簡單一點來說它是一個文件系統,類似我們的NTFS或者EXT3,只是這個文件系統是建立在一堆的計算機的集群之上,用來存儲海量數據的。一般來說,對文件系統的操作無非是讀或者寫,而寫通常又被細分成update和append。Update是對已有數據的更新,而append則是在文件的末尾增加新的數據。

Google File System的論文發表于2003年,那個時候Google已經可以讓這個文件系統穩定的運行在幾千臺機器上,那么今天在我看來穩定的運行在幾萬臺機器上并非是什么問題。這是非常了不起的成就,也是Hadoop的文件系統至今無非達到的高度。

GFS的設計理念上做了兩個非常重要的假設,其一是這個文件系統只處理大文件,一般來說要以TB或者PB作為級別去處理。其二是這個文件系統不支持update只支持append。在這兩個假設的基礎上,文件系統進一步假設可以把大文件切成若干個chunk,本文上面的圖大致上給了GFS的一個基本體系框架的解釋。

Chunk server是GFS的主體,它們存在的目的是為了保存各種各樣的chunk。這些chunk代表了不同文件的不同部分。為了保證文件的完整性不受到機器下崗的影響,通常來說這些chunk都有冗余,這個冗余標準的來說是3份。有過各種分析證明這個三份是多么的安全。

在我曾經工作的微軟的文件系統實現里面也用過三份這樣的冗余。結果有一次data center的電源出問題,導致一個集裝箱的機器整個的失聯(微軟的數據中心采用了非常獨特的集裝箱設計)。有一些文件的兩個或者三個拷貝都在那個集裝箱對應的機器上,可以想象,這也同樣導致了整個系統的不可用。所以對于這三個拷貝要放哪里怎么去放其實是GFS里比較有意思的一個問題。我相信Google一定是經過了很多的研究。

除了保存實際數據的chunk server以外,我們還需要metadata manager,在GFS里面這個東西就是master了。按照最初的論文來說,master是一個GFS里面唯一的。當然后續有些資料里有提到GFS V2的相關信息表明這個single point bottleneck 在Google的系統演進中得到了解決。Master說白了就是記錄了各個文件的不同chunk以及它們的各自拷貝在不同chunk server上的區別。

Master的重要性不言而喻。沒有了metadata的文件系統就是一團亂麻。Google的實現實際上用了一個Paxos協議,倘若我的理解是正確的話。Paxos是Lamport提出來的用來解決在不穩定網絡里面的consensus的一個協議。協議本身并不難懂,但是論文的證明需要有些耐心。

當然最重要的,我自己從來沒有實現過這個協議。但是就我能看到的周圍實現過的人來說,這個東西很坑爹。Paxos干的事情是在2N+1臺機器里保持N的冗余。簡單一點說,掛掉N臺機器這個metadata service依然可以使用。

協議會選出一個master服務,而其他的則作為shadow server存在。一旦master掛了大家會重新投票。這個協議很好的解決了High Availability的問題。很不幸的是,抄襲的Hadoop 文件系統使用的是一個完全不同的方案。這個我們在講到Hadoop的時候再說。

對GFS的訪問通過client,讀的操作里,client會從master那邊拿回相應的chunk server,數據的傳輸則通過chunk server和client之間進行。不會因此影響了master的性能。而寫的操作則需要確保所有的primary以及secondary都寫完以后才返回client。如果寫失敗,則會有一系列的retry,實在不行則這些chunk會被標注成garbage,然后被garbage collection。

Master和chunk server之間會保持通信,master保持著每個chunk的三個copy的實際位置。當有的機器掉線之后,master如果有必要也會在其他的機器上觸發額外的copy活動以確保冗余,保證文件系統的安全。

GFS的設計非常的值得學習。系統支持的目標文件以及文件的操作非常的明確而簡單。對待大規模不穩定的PC機構成的data center上怎么樣建立一個穩定的系統,對data使用了復制,而對metadata則用了Paxos這樣的算法的實現。這個文件系統體現了相當高水準的系統設計里對方方面面trade off的選擇。有些東西只有自己做過或者就近看人做過才能真正感受到這系統設計的博大精深。故而對我個人而言,我對GFS的論文一直是非常的推崇,我覺得這篇論文值得每個做系統的人反復的讀。

同系列之:

大數據的那些事(1):Google的后悔藥

大數據的那些事(3):三駕馬車之坑人的MapReduce

責任編輯:趙寧寧 來源: 36大數據
相關推薦

2016-10-24 22:57:05

2022-03-28 15:09:17

無線傳感器網絡Harmony鴻蒙

2011-09-20 09:50:21

英特爾云計算開放

2017-04-06 09:35:10

大數據SparkSQLSpark

2025-04-29 09:09:32

2020-04-20 14:40:07

KyribaSaaS

2018-01-04 13:29:13

租房租房網站安全

2014-04-18 10:58:45

2020-11-15 19:42:36

人工智能AI

2025-04-15 08:44:43

2016-10-24 22:41:06

大數據Google

2013-06-14 16:17:28

企業電商

2021-03-25 19:53:43

亞馬遜云科技

2015-08-27 17:08:46

大數據

2018-10-25 14:08:40

微軟AzureOffice 365

2016-10-27 14:28:59

Hadoop系統大數據

2022-10-26 09:57:52

VectorRustC++

2011-09-15 17:26:51

工作站行情

2021-12-26 18:20:03

架構Flink設計

2013-09-23 09:52:22

云計算大數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产伦精品一区二区三区精品视频 | 看av网址 | 久久成人国产精品 | 成人免费在线视频 | 一区二区蜜桃 | 中文字幕日韩欧美一区二区三区 | av官网在线 | 欧美成人h版在线观看 | 三级av网址 | 国产91视频一区二区 | 久久久精品网站 | 久久久久久亚洲 | 久久尤物免费一区二区三区 | 国产精品欧美一区二区 | 91视频在线网站 | av天空| 一区二区影视 | 中国美女av | 女人毛片a毛片久久人人 | 久草在线中文888 | 欧美日韩一区二区三区在线观看 | 日本久久久久久久久 | 99视频在线| 日韩欧美在线播放 | 成年免费大片黄在线观看一级 | 国产精品久久久亚洲 | 欧美日韩久久精品 | 久久一区二区精品 | 精品伊人久久 | 久久久精| 午夜播放器在线观看 | 国产91丝袜在线播放 | 欧美精品网站 | 1级黄色大片| 亚洲人成人一区二区在线观看 | 色吊丝2288sds中文字幕 | 一区二区视频在线 | 亚洲一区二区在线电影 | 国产999精品久久久久久绿帽 | 丁香色婷婷| a网站在线观看 |