- 分布式數(shù)據(jù)庫HBase案例教程
- 陳建平等主編
- 886字
- 2023-09-15 18:00:58
1.1.2 GFS
談到分布式文件系統(tǒng),就不得不提到Google的GFS(Google File System)。GFS是一個可擴展的分布式文件系統(tǒng),用于大型的、分布式的、對大量數(shù)據(jù)進行訪問的應(yīng)用。它運行于廉價的普通硬件上,并提供容錯功能。它可以給大量的用戶提供總體性能較高的服務(wù)。
在有GFS之前,Google是當時唯一需要處理如此海量數(shù)據(jù)的大公司,對于Google而言,當時已有的方案已經(jīng)難以滿足如此大的數(shù)據(jù)量存儲,為此Google便開發(fā)了分布式文件系統(tǒng)GFS。HDFS是GFS的一個開源實現(xiàn),它是Hadoop的核心組件之一,也是HBase的基礎(chǔ)。
1. GFS設(shè)計目標
Google設(shè)計GFS主要是為了解決以下幾方面問題:
(1)需要存儲的數(shù)據(jù)種類繁多:Google目前向公眾開放的服務(wù)很多,需要處理的數(shù)據(jù)類型也非常多。包括URL、網(wǎng)頁內(nèi)容、用戶的個性化設(shè)置在內(nèi)的數(shù)據(jù),都是Google需要經(jīng)常處理的對象。
(2)海量的服務(wù)請求:Google運行著目前世界上最繁忙的系統(tǒng),它每時每刻處理的客戶服務(wù)請求數(shù)量是普通的系統(tǒng)根本無法承受的。
(3)商用數(shù)據(jù)庫的局限性:一方面現(xiàn)有商用數(shù)據(jù)庫設(shè)計著眼點在于通用性,根本無法滿足Google苛刻的服務(wù)要求;另一方面對于底層系統(tǒng)的完全掌控,會給后期的系統(tǒng)維護、升級帶來極大的便利。
2. GFS的設(shè)計思路
GFS在設(shè)計思路上的特色包括以下幾點:
(1)一個GFS集群包含一個單獨的Master節(jié)點(即只存在一個邏輯上的Master組件,實際包含兩臺物理主機)、多臺Chunk(大塊)服務(wù)器以及多個客戶端。
(2)系統(tǒng)通過廉價的組件組成,可存儲大文件(通常在100MB以上)。
(3)采用“生產(chǎn)者”與“消費者”隊列,或者其他多路文件合并操作。
(4)高性能的穩(wěn)定網(wǎng)絡(luò)帶寬遠比低延時重要。
(5)系統(tǒng)支持兩種讀操作:大規(guī)模的流式讀取和小規(guī)模的隨機讀取。
3. GFS架構(gòu)
GFS將容錯的任務(wù)交給文件系統(tǒng)完成,利用軟件的方法解決系統(tǒng)可靠性問題,使存儲的成本成倍下降。
GFS將服務(wù)器故障視為正常現(xiàn)象,并采用多種方法,從多個角度,使用不同的容錯措施,以確保數(shù)據(jù)存儲的安全,保證提供不間斷的數(shù)據(jù)存儲服務(wù)。
GFS的架構(gòu)流程圖如圖1-2所示。

圖1-2 GFS架構(gòu)流程圖
(1)GFS客戶端:應(yīng)用程序的訪問接口。
(2)主服務(wù)器:管理節(jié)點,在邏輯上只有一個,保存系統(tǒng)的元數(shù)據(jù),負責(zé)整個文件系統(tǒng)的管理。
(3)數(shù)據(jù)塊服務(wù)器:負責(zé)具體的存儲工作,數(shù)據(jù)以文件的形式存儲在Chunk Server上。
- JavaScript百煉成仙
- The DevOps 2.3 Toolkit
- Flutter開發(fā)實戰(zhàn)詳解
- PostgreSQL技術(shù)內(nèi)幕:事務(wù)處理深度探索
- C#程序設(shè)計教程
- Java Web應(yīng)用開發(fā)技術(shù)與案例教程(第2版)
- Mastering Rust
- FFmpeg入門詳解:音視頻原理及應(yīng)用
- Android系統(tǒng)原理及開發(fā)要點詳解
- Babylon.js Essentials
- 零基礎(chǔ)看圖學(xué)ScratchJr:少兒趣味編程(全彩大字版)
- Keil Cx51 V7.0單片機高級語言編程與μVision2應(yīng)用實踐
- Clojure for Finance
- 少年小魚的魔法之旅:神奇的Python
- HTML 5與CSS 3權(quán)威指南(第4版·上冊)