HDFS入門概述

千鋒Python唐小強發表於2020-07-03

真正的學習是去探索,思考和重建

HDFS產生背景

隨著資料量越來越大,在一個作業系統存不下所有的資料,那麼就分配到更多的作業系統管理的磁碟中,但是不方便管理和維護,迫切需要一種系統來管理多臺機器上的檔案,這就是分散式檔案管理系統。HDFS只是分散式檔案管理系統中的一種。


HDFS入門概述

HDFS定義

HDFS( Hadoop Distributed File System),它是一個檔案系統,用於儲存檔案,透過目錄樹來定位檔案;其次,它是分散式的,由很多伺服器聯合起來實現其功能,叢集中的伺服器有各自的角色

關鍵詞:檔案系統,分散式

使用場景

適合一次寫入,多次讀出的場景,且不支援檔案的修改。適合用來做資料分析,並不適合用來做網盤應用

優點

  • 高容錯性(1)資料自動儲存多個副本。它透過增加副本的形式,提高容錯性。 (2)某一個副本丟失以後,它可以自動恢復
  • 適合處理大資料(1)資料規模:能夠處理資料規模達到GB、TB、甚至PB級別的資料: (2)檔案規模:能夠處理百萬規模以上的檔案數量,數量相當之大 (3)可構建在廉價機器上,透過多副本機制,提高可靠性

缺點

  • 不適合低延時資料訪問,比如毫秒級的儲存資料,是做不到的
  • 無法高效的對大量小檔案進行儲存
(1)儲存大量小檔案的話,它會佔用 Namenode大量的記憶體來儲存檔案目錄和塊資訊。這樣是不可取的,因為 Namenode的記憶體總是有限的:

(2)小檔案儲存的定址時間會超過讀取時間,它違反了HDFS的設計目標。
  • 不支援併發寫入、檔案隨機修改HDFS
1)一個檔案只能有一個寫,不允許多個執行緒同時寫:

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

HDFS組成架構圖

HDFS檔案塊大小

思考:快為什麼不能設定太小,也不能設定太大呢?

(1)HDFS的塊設定太小,會增加定址時間,程式一直在找塊的開始位置:(2)HDFS的塊比磁碟的塊大,其目的是為了最小化定址開銷:(3)如果塊設定的太大,從磁碟傳輸資料的時間會明顯大於定位這個塊開始位置所需的時間。導致程式在處理這塊資料時,會非常慢。

總結:HDFS塊的大小設定主要取決於磁碟傳輸速率。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2702309/,如需轉載,請註明出處,否則將追究法律責任。

相關文章