1. 程式人生 > 其它 >HDFS相關內容

HDFS相關內容

HDFS定義:是一個檔案系統,用於儲存檔案、通過目錄樹來定位檔案,其次,他是分散式得,由很多伺服器聯合起來實現其功能,叢集中的伺服器有各自的角色。

HDFS主要使用場景:一次寫入,多次讀取。一個檔案經過建立、寫入和關閉之後就不需要改變。

HDFS特性:

  • hdfs是一個分散式的檔案系統,用於儲存檔案,通過統一的名稱空間目錄樹來定位檔案;
  • 採用 master/slave(主從)架構。有一個 namenode 和多個 datanode 組成,各司其職;
  • 分塊儲存,預設大小在Hadoop2.x版本中是128M;
  • namenode 元資料管理,負責維護整個hdfs檔案系統的目錄樹結構,以及每個檔案所對應的 block 塊資訊(block 的 id,及所在的 datanode 伺服器)。
  • DataNode 資料儲存 檔案的 block 具體儲存由 datanode承擔,datanode 定時向 namenode 彙報自己持有的 block 資訊
  • 副本機制,為了容錯,檔案的 所有block 都會有副本
  • HDFS 的設計為適應一次寫入,多次讀取,且不支援檔案的修改。

HDFS優點:

(1)高容錯性

1)資料自動儲存多個副本。它通過增加副本的形式,提高容錯性。

2)某一個副本丟失以後,它可以自動恢復,這是由 HDFS內部機制實現的,我們不必關心。

(2)適合批處理

1)它是通過移動計算而不是移動資料。

2)它會把資料位置暴露給計算框架。

(3)適合大資料處理

1)資料規模:能夠處理資料規模達到 GB、TB、甚至PB級別的資料。

2)檔案規模:能夠處理百萬規模以上的檔案數量,數量相當之大。

3)節點規模:能夠處理10K節點的規模。

(4)流式資料訪問

1)一次寫入,多次讀取,不能修改,只能追加。

2)它能保證資料的一致性。

(5)可構建在廉價機器上

1)它通過多副本機制,提高可靠性。

2)它提供了容錯和恢復機制。比如某一個副本丟失,可以通過其它副本來恢復。

2、 HDFS 缺點:

(1)不適合低延時資料訪問;

1)比如毫秒級的來儲存資料,這是不行的,它做不到。

2)它適合高吞吐率的場景,就是在某一時間內寫入大量的資料。但是它在低延時的情況 下是不行的,比如毫秒級以內讀取資料,這樣它是很難做到的。

改進策略

(2)無法高效的對大量小檔案進行儲存

1)儲存大量小檔案的話,它會佔用 NameNode大量的記憶體來儲存檔案、目錄和塊資訊。這樣是不可取的,因為NameNode的記憶體總是有限的。

2)小檔案儲存的尋道時間會超過讀取時間,它違反了HDFS的設計目標。 改進策略

(3)併發寫入、檔案隨機修改

1)一個檔案只能有一個寫,不允許多個執行緒同時寫。

2)僅支援資料 append(追加),不支援檔案的隨機修改。