自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大數(shù)據(jù)存儲(chǔ)的進(jìn)化史 --從 RAID 到 Hdfs

存儲(chǔ) 存儲(chǔ)軟件
我們都知道現(xiàn)在大數(shù)據(jù)存儲(chǔ)用的基本都是 Hdfs ,但在 Hadoop 誕生之前,我們都是如何存儲(chǔ)大量數(shù)據(jù)的呢?這次我們不聊技術(shù)架構(gòu)什么的,而是從技術(shù)演化的角度來看看 Hadoop Hdfs。

我們都知道現(xiàn)在大數(shù)據(jù)存儲(chǔ)用的基本都是 Hdfs ,但在 Hadoop 誕生之前,我們都是如何存儲(chǔ)大量數(shù)據(jù)的呢?這次我們不聊技術(shù)架構(gòu)什么的,而是從技術(shù)演化的角度來看看 Hadoop Hdfs。

我們先來思考兩個(gè)問題。

  • 在 Hdfs 出現(xiàn)以前,計(jì)算機(jī)是通過什么手段來存儲(chǔ)“大數(shù)據(jù)” 的呢?
  • 為什么會(huì)有 Hadoop Hdfs 出現(xiàn)呢?

在 Hdfs 出現(xiàn)以前,計(jì)算機(jī)是通過什么手段來存儲(chǔ)“大數(shù)據(jù)”

要知道,存儲(chǔ)大量數(shù)據(jù)有三個(gè)最重要的指標(biāo),那就是速度,容量,容錯(cuò)性。速度和容量的重要性毋庸置疑,如果容量不夠大,或者讀取的速度不夠快,那么海量數(shù)據(jù)存儲(chǔ)也就無從談起了。而磁盤又是計(jì)算機(jī)中很容易損壞的零件,當(dāng)磁盤損壞的時(shí)候怎么辦?放任數(shù)據(jù)的丟失嗎,那可不行,這就有了容錯(cuò)性的需求。

在沒有分布式存儲(chǔ)的時(shí)代,單個(gè)磁盤容量不夠怎么辦?加磁盤唄。磁盤容易壞怎么辦,同時(shí)用其他磁盤備份唄。就這樣,獨(dú)立磁盤冗余陣列( Redundant Array of Independent Disks ),簡稱 RAID,誕生了。

 

在 2000 年以前,磁盤還是很珍貴的資源,不像現(xiàn)在,磁盤是 PC 機(jī)中最廉價(jià)的部件。一開始 RAID 技術(shù)是為了將多個(gè)廉價(jià)的容量較小的磁盤組合起來充當(dāng)一個(gè)大磁盤以節(jié)約成本,但后來人們發(fā)現(xiàn)這項(xiàng)技術(shù)也可以用在單臺(tái)機(jī)器磁盤擴(kuò)容上了,于是 RAID 技術(shù)開始被廣泛使用。

RAID 技術(shù)將多個(gè)磁盤組合成一個(gè)邏輯扇區(qū),對(duì)計(jì)算機(jī)而言,它會(huì)將 RAID 當(dāng)作一個(gè)磁盤來處理。使用 RAID 的好處有:增強(qiáng)數(shù)據(jù)集成度,增強(qiáng)容錯(cuò)功能,增加處理量或容量。

[[253070]]

另外 RAID 也有分為多個(gè)檔次,標(biāo)準(zhǔn)的分法,分別是 RAID0 , RAID1 , RAID2 ,RAID3 ,RAID4 ,RAID5 , RAID6 ,每個(gè)檔次都有對(duì)應(yīng)的優(yōu)缺點(diǎn)。這里就不詳細(xì)介紹,這些 RAID 等級(jí)的不同主要是對(duì) 上述說到的三個(gè)數(shù)據(jù)存儲(chǔ)要素(速度,容量,容錯(cuò)性)的不同取舍,各有各的應(yīng)用場景。我們從上述的三個(gè)指標(biāo)來看 RAID 技術(shù)。

  • 速度: RAID通過在多個(gè)磁盤上同時(shí)存儲(chǔ)和讀取數(shù)據(jù)來大幅提高存儲(chǔ)系統(tǒng)的數(shù)據(jù)吞吐量。在RAID中,可以讓很多磁盤驅(qū)動(dòng)器同時(shí)傳輸數(shù)據(jù),而這些磁盤驅(qū)動(dòng)器在邏輯上又是一個(gè)磁盤驅(qū)動(dòng)器,所以使用RAID可以達(dá)到單個(gè)磁盤驅(qū)動(dòng)器幾倍、幾十倍甚至上百倍的速率。
  • 容量: 可以將多個(gè)磁盤連接起來,對(duì)比以前的單個(gè)磁盤存儲(chǔ),RAID 將存儲(chǔ)的量級(jí)拔高了一個(gè)臺(tái)階。但依舊有其局限性,因?yàn)?RAID 始終是放在單臺(tái)機(jī)器上,機(jī)器的磁盤卡槽不可能***增加,磁盤也不可能一直增大。
  • 容錯(cuò)性: 不同等級(jí)的 RAID 使用不同的數(shù)據(jù)冗余策略,保證數(shù)據(jù)的容錯(cuò)性。比如最簡單的 RAID1 就是數(shù)據(jù)在寫入磁盤時(shí),將一份數(shù)據(jù)同時(shí)寫入兩塊磁盤,這樣任何一塊磁盤損壞都不會(huì)導(dǎo)致數(shù)據(jù)丟失,而插入一塊新磁盤就可以通過復(fù)制數(shù)據(jù)的方式自動(dòng)修復(fù),具有極高的可靠性。

為什么會(huì)有 Hadoop Hdfs 出現(xiàn)

 

最直接是原因是 Google 三篇大數(shù)據(jù)論文的發(fā)表,這直接導(dǎo)致了 Hadoop 的問世。

但更深層的原因其實(shí)還是因?yàn)閭鹘y(tǒng)的但節(jié)點(diǎn)磁盤容量達(dá)到了極限,即便是用上述的 RAID 技術(shù),但單個(gè)臺(tái)服務(wù)器的容量始終有一個(gè)邊界值。而且隨著互聯(lián)網(wǎng)的普及,在 2000 年后,數(shù)據(jù)的積累呈指數(shù)式增長,這時(shí)候單臺(tái)服務(wù)器顯然已經(jīng)放不下這海量的數(shù)據(jù)了。但是就像 RAID 的改革思想一樣,既然單臺(tái)服務(wù)器不夠,那我們就加服務(wù)器唄。

最早是 Google ,他們?cè)谧约旱南到y(tǒng)上實(shí)現(xiàn)了 Google File System(GFS) 這么一個(gè)分布式存儲(chǔ)系統(tǒng),并在 03 年的時(shí)候?qū)⑺膶?shí)現(xiàn)論文發(fā)表了出來。

但要將多臺(tái)服務(wù)器聯(lián)合在一起進(jìn)行分布式存儲(chǔ),顯然不是那么容易。Hadoop1.0 的時(shí)候,Hdfs 還是有一些隱患的。舉個(gè)例子,用分布式進(jìn)行數(shù)據(jù)存儲(chǔ),那就需要一個(gè)來記錄元數(shù)據(jù)的服務(wù)器,也就是記錄數(shù)據(jù)存儲(chǔ)位置的服務(wù)器。Hadoop1.0 時(shí)候的 Hdfs 是用一個(gè) namenode 管理元數(shù)據(jù)的,但顯然,只有一個(gè) namenode 來存儲(chǔ)元數(shù)據(jù)有極大的風(fēng)險(xiǎn),那就是 namenode 的可靠性無法保證,一旦這個(gè) namenode 掛掉,整個(gè)集群就完蛋了。

好在這些問題及時(shí)得到修復(fù),Hadoop2.0 橫空出世,架構(gòu)升級(jí),解決了大部分的問題,Hdfs 這才算是坐穩(wěn)了大數(shù)據(jù)存儲(chǔ)王者的寶座。

在這里我們就先不說 Hdfs 的架構(gòu)如何,依舊是從上面說到的大數(shù)據(jù)存儲(chǔ)的三個(gè)指標(biāo)速度,容量,容錯(cuò)性這幾個(gè)方面來看 Hdfs。

  • 速度: 速度方面的優(yōu)勢源于 Hdfs 合理的設(shè)計(jì)理念。它默認(rèn)用到 Hdfs 處理的是大的數(shù)據(jù)(TB,PB 級(jí)的數(shù)據(jù)),并且摒棄了傳統(tǒng)文件系統(tǒng)中的 Update 操作,只有 Append 操作。在這個(gè)基礎(chǔ)上,Hdfs 將一個(gè)文件分割成若干個(gè)塊(Block),每個(gè)塊分布在不同的機(jī)器中。。和 RAID 利用多個(gè)磁盤并發(fā) IO 提高速度一樣,每次操作一個(gè)文件的時(shí)候,實(shí)際上是多個(gè)機(jī)器在并發(fā)讀取,這樣無疑是進(jìn)一步提高讀取速度。
  • 容量: 容量這個(gè)問題自不必說,理論上是可以***制得擴(kuò)容。但實(shí)際上由于它的元數(shù)據(jù)存儲(chǔ)在一臺(tái) namenode 中,所以它的大小還是會(huì)收到元數(shù)據(jù)存儲(chǔ)的這個(gè)限制。不過在 Hadoop2.0 后,在機(jī)器條件允許的情況下,一個(gè) Hdfs 支撐起 PB 級(jí)別的存儲(chǔ)還是綽綽有余的。
  • 容錯(cuò)性: 在容錯(cuò)性這個(gè)方面,從以前到現(xiàn)在基本都是通過數(shù)據(jù)冗余來實(shí)現(xiàn)的。只不過數(shù)據(jù)冗余的一些策略會(huì)根據(jù)不同的應(yīng)用場景而做出一些改變。由于 Hadoop 本身就是假設(shè)部署在多臺(tái)廉價(jià)機(jī)器上,所以它會(huì)傾向于將存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn)當(dāng)作不可靠的節(jié)點(diǎn)。出于這個(gè)因素,Hdfs 的默認(rèn)冗余備份數(shù)是 3份 ,就是說當(dāng)你向 Hdfs 寫入一份數(shù)據(jù)的時(shí)候,同時(shí)會(huì)在其他三臺(tái)機(jī)器上也寫入相同的內(nèi)容。

我們可以發(fā)現(xiàn),其實(shí) Hdfs 和 RAID 在思想上是有一些相似之處的。都是通過水平拓展,比如 RAID 水平拓展磁盤,Hdfs 則是水平拓展機(jī)器。

鐵打的營盤流水的兵。數(shù)據(jù)就是那些兵,大數(shù)據(jù)計(jì)算框架,比如 Spark,Hive 是將軍。而營盤就是 Hdfs 了。兵進(jìn)進(jìn)出出,將軍換了一個(gè)又一個(gè),唯獨(dú)營盤不會(huì)變, Hdfs 無疑是大數(shù)據(jù)體系中最基礎(chǔ)也是最重要的那一環(huán)。

這里給出一個(gè)有意思的問題: 當(dāng)下一次互聯(lián)網(wǎng)革命到來,數(shù)據(jù)又呈指數(shù)增長的時(shí)候,數(shù)據(jù)存儲(chǔ)的模式會(huì)怎樣演化呢?會(huì)是簡單的增加集群嗎,比方說讓多個(gè) hdfs 集群相互連通?歡迎在評(píng)論中寫下你的思考。

責(zé)任編輯:武曉燕 來源: 程序員愛學(xué)習(xí)
相關(guān)推薦

2022-03-29 09:35:15

FirefoxUI瀏覽器

2025-02-06 16:51:30

2016-02-04 09:17:59

2010-01-21 16:08:26

C++語言

2024-09-21 10:43:15

數(shù)據(jù)技術(shù)信息

2018-03-23 12:20:25

數(shù)據(jù)中心網(wǎng)絡(luò)數(shù)據(jù)

2020-11-23 10:35:52

Emotet

2024-09-23 17:20:14

2024-09-25 15:38:30

數(shù)據(jù)倉庫數(shù)據(jù)中臺(tái)數(shù)據(jù)飛輪

2024-09-24 18:36:29

2024-09-20 13:11:06

數(shù)據(jù)倉庫數(shù)據(jù)中臺(tái)數(shù)據(jù)飛輪

2014-09-01 16:29:34

2011-12-21 16:44:00

信息圖手機(jī)進(jìn)化史

2024-09-23 19:47:27

數(shù)據(jù)技術(shù)數(shù)據(jù)飛輪數(shù)據(jù)驅(qū)動(dòng)

2024-09-23 11:18:42

數(shù)據(jù)倉庫數(shù)據(jù)中臺(tái)數(shù)據(jù)飛輪

2024-09-21 10:32:23

2024-09-20 13:16:28

2024-09-20 15:17:02

數(shù)據(jù)倉庫數(shù)據(jù)中臺(tái)數(shù)據(jù)飛輪

2024-09-25 15:24:30

數(shù)據(jù)倉庫數(shù)據(jù)中臺(tái)數(shù)據(jù)飛輪

2024-09-28 10:41:12

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)