Hadoop 的存儲系統是 HDFS(Hadoop Distributed File System)分布式文件系統,對外部客戶端而言,HDFS 就像一個傳統的分級文件系統,可以進行創建、刪除、移動或重命名文件或文件夾等操作,與 Linux 文件系統類似。
Client客戶端
文件切片,文件上傳的時候,Client對上傳的文件進行切片成一個一個block,然后進行存儲
與namenode交互,獲取文件位置信息
與datanode交互,讀取或寫入數據
Client 提供一些命令來管理 和訪問HDFS,比如啟動或者關閉HDFS。
namenode
管理HDFS的名稱空間
管理數據塊的映射信息
處理副本策略
處理客戶端的請求
作用:
1:namenode的元數據信息(文件名,目錄,屬性,每個文件的塊列表)
2:namenode文件操作 namenode負責文件元數據的操作
3:namenode副本機制 文件的副本具體放在哪些datanode上是由namenode決定的
4:namenode心跳機制 全權管理數據塊的復制,周期性的接受心跳和塊狀態報告信息,每十分鍾發送一次如果超過這個時間沒有接受到請求會認為datanode已近宕機,會把數據塊重新復制,塊狀態的報告包含所有數據塊的列表每一小時發送一次
datanode
存儲實際的數據塊
執行數據塊的讀/寫操作
作用:
1:datanode以數據塊的方式存儲HDFS
2:datanode響應hdfs客戶端的讀寫請求
3:datanode周期向namenode發送心跳請求
4:datanode周期向namenode匯報數據塊信息
5:datanode周期性向namenode匯報緩存數據塊信息
seconddaynamenode
輔助namenode,分擔其工作量
定期合並fsimage和fsedits,並推送給namenode
緊急情況可以恢復namenode
文件的副本機制
一個文件有可能大於集群中的任意一塊磁盤,引入塊機制,可以很好地解決這個問題
使用塊作為文件存儲的邏輯單位可以很好的簡化存儲系統
塊非常適用於數據備份從而提供數據的容錯能力
機架感知
分布式文件存儲系統內部有一個副本存放的策略
第一個副本塊存本機
第二個副本快存同機架的其它服務器
第三個副本快存放不同機架的服務器