大數據 Hadoop HDFS概述

HDFS 概述

HDFS 產生背景

隨着計算機技術的發展,數據量越來越大,在一個操作系統中存不下所有的數據,就會把數據分配到更多的操作系統管理的磁盤中,但是不方便管理和維護,迫切需要一種系統來管理多臺機器上的文件。。於是分佈式文件管理系統孕育而生。HDFS只是分佈式文件管理系統中的一種。

HDFS 定義

HDFS (Hadoop Distributed File System) 是一個文件管理系統。用於儲存文件,通過目錄樹來定位文件。其次,它是分佈式的,由很多服務器聯合起來實現其功能,集羣中的服務器有各自的角色。

HDFS 使用場景

HDFS的設計適合一次寫入,多次讀出的場景,且不支持文件的修改。適合用來做數據分析,並不適合用來做網盤應用。

HDFS 架構組成

hdfs架構組成
如圖所示,相關模塊的功能如下

NameNode

  • NameNode 也就是Master,擔當管理者角色.負責管理整個文件系統的元數據,以及每一個路徑(文件)所對應的數據塊信息。
    1. 管理HDFS名稱空間
    2. 管理副本配置策略
    3. 處理塊數據 (Block) 映射信息
    4. 處理客戶端讀寫請求

Secondary NameNode

  • Secondary NameNode
    1. 輔助NameNode, 分擔其工作量。比如定期合併Fsimage和Edits,並推送給NameNode
    2. 在緊急情況下,可輔助恢復NameNode

DataNode

  • DataNode 充當NameNode的slave角色。NameNode下達命令,DataNode執行實際操作。負責管理用 戶的文件數據塊,每一個數據塊都可以在多個datanode上存儲多個副本。
    1. 儲存實際數據塊
    2. 執行數據塊的讀寫操作

Client

  • Client
    1. 進行文件切分。文件上傳HDFS的時候,Client會將文件切分成單個Block,然後進行上傳操作。
    2. 與NameNode交互,獲取文件的位置信息
    3. 與DataNode交互,讀取或者寫入數據

HDFS 優缺點

優點

  • 高容錯性
    1. 數據自動保存多個副本。通過增加副本的方式,提高容錯性。
    2. 某一個副本丟失後,可自動恢復。
  • 適合處理大數據
    1. 數據規模:能夠處理數據規模達到GB、TB、甚至PB級別的數據
    2. 文件規模.能夠處理由萬規模以上的文件數量,數量相當之大
  • 可構建在廉價機器上,通過多副本複製機制,提高可靠性。

缺點

  • 不適合低延時數據訪問,比如毫秒級的存儲數據
  • 無法高效對大量小文件進行存儲
    1. 存儲大小小文件,會佔用NameNode大量的內存來儲存文件目錄和塊信息。這樣是不可取的,因爲NameNode的內存總量有限。
    2. 小文件的存儲尋址時間會超過讀取時間,違反了HDFS的設計目標
  • 不支持併發寫入,文件隨機修改
    1. 文件寫入時只能單線程操作,不允許多個線程同時寫文件
    2. 僅支持數據追加,不支持文件的隨機修改
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章