iT邦幫忙

DAY 7
3

動物園之路系列 第 7

動物園之路 -7- 大象為什麼可以彈性增縮?

這個標題好像有點奇怪,我主要是要表達Hadoop為什麼可以彈性擴充..還有介紹一下Hadoop的分散式架構..
Hadoop是一個可以進行大量分散運算的架構,
前面有提到最主要兩個要素是NameNode與DataNode,
DataNode可以一直擴充,NameNode會記錄他有管哪幾個DataNode。

我們在進行大量運算的時候,一般而言我們會先把要運算的資料,先載入到一個儲存的空間裡。
前面有提到,BigData基本上都是TB,所以要在一台主機上直接放上幾十TB的資料,
會花費很昂貴的成本,但是Hadoop的分散式儲存架構(Hadoop Distributed File System),也就是HDFS,可以把一個很大的檔案切割很多區塊,每個區塊會按照設定的副本數儲存到DataNode上。
從這邊就可以看到兩個優點,第一個當檔案分散為很多區塊的時候,這樣就可以從不一樣的主機,讀取同檔案的不同區塊,最後在NameNode組合起來,可以分散I/O的處理。
第二個就是副本的機制,多副本的好處是,當其中一台DataNode壞掉的時候,若其他DataNode有保留這個複本,就可以避免這個檔案的該區塊毀壞,也避免整個檔案毀壞。

所以說大象要伸縮的彈性就變很容易,若要運算的資料很大量,就增加多一點機器或是拿一些平常不會使用的機器,若不需要那麼多資源,其實也可以再把機器移掉或關閉,只要能確保要運算的檔案,至少有一個區塊的副本在現有的DataNode上。

不過一般而言也不會刻意把機器關閉就是...但是結合Amazon的服務的話,就真的可以在運算的時候啟動這些節點,平常把他關閉就好。

今天比較偏向講HDFS分散式儲存的部分,當介紹Map/Reduce的時候,會比較了解Hadoop如何做分散式的運算,同時也會提到很重要的一點,就是本地最佳化,當Hadoop分散式做運算的時候,該運算節點會偏好去取得該台主機原本就有的資料區塊,這樣才不會當我在A node做運算,結果資料在B Node,還需要B Node把要算的區塊透過網路傳到A Node,這樣就會慢了許多。

明天就要上班了阿...好想繼續放假 哈打嗑睡


上一篇
動物園之路 -6- 大象管理員的認證(續)
下一篇
動物園之路 -8- 大象錯了嗎?(亂入)
系列文
動物園之路27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言