hdfs基本介紹


一、hdfs概述

HDFS是Hadoop分布式文件系統(Hadoop Distributed File System)的簡稱,它的設計目標是把超大數據集存儲到網絡中的多台普通計算機上,並提供高可靠性和高吞吐率的服務。

HDFS的優點:
高容錯性:數據自動保存多個副本,hdfs默認的副本數量是3
適合處理大數據:能夠處理GB、TP甚至BP級別的數據,能夠處理百萬規模以上的文件數量
可構建在廉價機器上

HDFS的缺點:
不適合低延遲的數據訪問:hdfs無法實現毫秒級別的數據存儲和訪問,hdfs提供高吞吐量但無法提供低延遲數據訪問
無法高效處理大量的小文件:大量小文件會占用namenode大量的內存來存儲元數據,且會導致尋址時間過長
不支持並發寫入和隨機修改:一個文件只能有一個寫,不允許多個線程同時寫;僅支持數據追加append,不支持隨機修改

 

二、hdfs組織和架構

hdfs主要有3個組間構成,分別是NameNode、SecondaryNameNode和DataNode。

NameNode的主要功能:

管理文件系統的名稱空間

配置副本策略

管理元數據,維護目錄樹,包括文件名、目錄名及其層級關系,文件、目錄的所有者及權限,每個文件的數據塊名稱及文件有哪些數據塊

處理客戶端的讀寫請求

NameNode實時通過心跳消息與DataNode交互,檢查文件系統是否運行正常。

 

namenode中的元數據不包含每個數據塊的位置信息,位置信息會在namenode啟動時從datanode獲取並保存在內存中,減少尋址時間。

 

DataNode的主要功能:

存儲實際的數據塊

執行數據塊的讀寫操作

 

SecondaryNameNode的主要功能:

定期合並fsimage文件和edits文件

緊急情況輔助恢復NameNode。

 

client,就是客戶端

與NameNode交互,獲取文件位置信息

與DataNode交互,進行文件讀寫操作

 

NameNode上存儲元數據的文件叫fsimage,NameNode啟動時將fsimage加載到內存,對元數據的操作保存在內存中並被持久化到另一個文件edits,SecondaryNameNode合並fsimage和edits的過程:

合並之前通知NameNode將新的操作寫到新的edits文件並將其命令為edits.new

SecondaryNameNode從NameNode請求fsimage和edits文件

SecondaryNameNode把fsimage和edits文件合並生成新的fsimage文件

NameNode從SecondaryNameNode獲取合並好的fsimage並替換原來舊的fsimage,並用edits.new文件替換掉原來的edits文件

更新fstime文件中的檢查點。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM