【分散式計算】DFS && BigTable
1.背景
分散式計算的發跡應該是google在2003年發表的三篇paper,分別是GFS、MapReduce、BigTable。其中MapReduce大家都很熟悉了,不懂的同學也可以看看我之前寫的文章【分散式計算】MapReduce的替代者-Parameter Server
為什麼google會搞分散式計算這件事兒呢,因為在那個年代每天會產生幾個T的日誌,但是當時的磁碟只允許儲存幾百G的檔案,07年之前淘寶的所有資料都是用完就刪除的,因為沒地方存。後來,人們認識到資料是值錢的,所以需要一種儲存策略來儲存大資料,於是google就用了分散式儲存系統。
這裡主要介紹下GFS和BigTable。
2.DFS(對應hadoop的HDFS)
DFS是一種分散式檔案儲存系統。常規的檔案系統是樹狀結構儲存的,每個檔案有一個指標指到磁碟上的某個區域。
早期的DFS是單點結構的,有一個master節點負責管理每個檔案的namespace(檔案儲存在哪個機器的哪個磁碟上,如s3/dick2)。要儲存一個很大的資料,比方說一個10P的資料,首先是切片,比如說按照64M切片,每個block存在某一個機器的某個磁碟上。整體的結構如下:
這裡面就會衍生出三個問題,
第一個是master節點如果掛了,整個檔案系統就不能work了,這個是單點的一個缺陷。
第二個問題是,一但slave中的某個磁碟破損了,磁碟破損率在2%左右,也就是每天都有破損的。這裡有一個冗餘機制,就是每個block會分配到多個磁碟上備份~
第三個問題是,磁碟是不停的被讀寫的,master是如何獲得每個磁碟的資訊的,這個功能依賴於一種叫做heart-beat的機制,每隔幾秒鐘,master就要遍歷每個slave得到它們的最新狀況。
3.BigTable(對應Hadoop的HBase)
如果說DFS是磁碟級別的分散式儲存,那麼BigTable就是記憶體級別的分散式儲存。BigTable的儲存結構是HashTable,以key-value的形式儲存。應用場景是一些線上的service。比方說GoogleEarth,每個地名(key)會對應一系列的meta(value),世界上有無數個地名,這是一個很大的檔案。如果從磁碟中拿,比方說輸入一個巷子的名字,過10分鐘使用者才能拿到結果,這是不能接受的,我們需要將這些key-value做成cache快取在記憶體中。顯然單機記憶體的極限,比方說300G也是無法快取這麼大的檔案的。這就需要多個機器一起快取,這個策略就是BigTable。
但是,一但一個機器出現failover的情況,整個快取就出現了gap,BigTable有一個機制就是,不斷地將檔案underfile到DFS中,防止檔案丟失。
/********************************
* 本文來自部落格 “李博Garvin“
* 轉載請標明出處:http://blog.csdn.net/buptgshengod
******************************************/
相關文章
- 分散式雲端計算分散式
- [分散式]分散式計算系統淺析分散式
- Hadoop 分散式儲存分散式計算Hadoop分散式
- 【分散式計算】分散式日誌匯入工具-Flume分散式
- 分散式計算與Map Reduce分散式
- 分散式計算如果學習分散式
- 雲端計算分散式平行計算:系統架構分散式架構
- 【大資料】BigTable分散式資料儲存系統分散式資料庫 | 複習筆記大資料分散式資料庫筆記
- 雲端計算,網格計算,分散式計算,叢集計算的區別?分散式
- 分散式計算,核心知識點分散式
- 【轉】分散式計算的謬論分散式
- 分散式計算技術(上):經典計算框架MapReduce、Spark 解析分散式框架Spark
- 分散式計算的八個謬誤 - Ably分散式
- go+lua的分散式計算工具--GleamGo分散式
- Titan-hadoop 分散式圖計算框架Hadoop分散式框架
- 我對分散式計算框架的理解與設計分散式框架
- 關於分散式計算的一些概念分散式
- 分散式系統中的自主自治計算 - pathelland分散式
- 《Storm分散式實時計算模式》——1.7總結ORM分散式模式
- Spark:一個高效的分散式計算系統Spark分散式
- 【分散式計算】MapReduce的替代者-Parameter Server分散式Server
- (OO + 分散式計算) = 軟體架構的方向分散式架構
- Hadoop 三劍客之 —— 分散式計算框架 MapReduceHadoop分散式框架
- 詳解 Apache SkyWalking OAP 的分散式計算Apache分散式
- 什麼是分散式計算系統?—Vecloud微雲分散式Cloud
- 分散式計算領域的哥德爾Eric Brewer分散式
- 從分散式計算到分散式訓練分散式
- 高效能分散式計算與儲存系統設計概要分散式
- 淺談分散式計算的開發與實現(一)分散式
- [原始碼解析] TensorFlow 分散式之 MirroredStrategy 分發計算原始碼分散式
- 為什麼分散式雲是雲端計算的未來?分散式
- 分散式計算技術的比較:Jini, Jxta and Web Services分散式Web
- 淺談分散式計算的開發與實現(1)分散式
- 用RMI實現基於Java的分散式計算(轉)Java分散式
- BigTable詳解
- 分散式和叢集區別?什麼是雲端計算平臺?分散式的應用場景?分散式
- 郭斯傑:重新思考流計算時代的分散式儲存分散式
- ray-分散式計算框架-叢集與非同步Job管理分散式框架非同步