HDFS,它是一個文件系統,用於存儲文件,經過目錄樹來定位文件;其次,它是分佈式的,由不少服務器聯合起來實現其功能,集羣中的服務器有各自的角色。
HDFS 的設計適合一次寫入,屢次讀出的場景,且不支持文件的修改。適合用來作數據分析,並不適合用來作網盤應用。node
(1) HDFS 集羣包括,NameNode 和 DataNode 以及 Secondary Namenode。
(2) NameNode 負責管理整個文件系統的元數據,以及每個路徑(文件)所對應的數據塊信息。
(3) DataNode 負責管理用戶的文件數據塊,每個數據塊均可以在多個 DataNode 上存儲多個副本。
(4) Secondary NameNode 用來監控 HDFS 狀態的輔助後臺程序,每隔一段時間獲取 HDFS 元數據的快照。服務器
HDFS 中的文件在物理上是分塊存儲 (block),塊的大小能夠經過配置參數 (dfs.blocksize) 來規定,默認大小在 hadoop2.x 版本中是 128M,老版本中是 64M。
HDFS 的塊比磁盤的塊大,其目的是爲了最小化尋址開銷。若是塊設置得足夠大,從磁盤傳輸數據的時間會明顯大於定位這個塊開始位置所需的時間。於是,傳輸一個由多個塊組成的文件的時間取決於磁盤傳輸速率。
若是尋址時間約爲 10ms,而傳輸速率爲 100MB/s,爲了使尋址時間僅佔傳輸時間的 1%,咱們要將塊大小設置約爲 100MB。默認的塊大小實際爲 64MB,可是不少狀況下 HDFS 使用 128MB 的塊設置。
塊的大小:10ms*100*100M/s = 100M分佈式