一、簡述
Hadoop分佈式文件系統(HDFS - Hadoop Distributed File System)是一種旨在硬件上運行的分佈式系統。它與現有的分佈式分揀系統有許多相似之處。
但是與其他文件系統的區別很明顯。HDFS具有高度的容錯能力,旨在部署在低成本的硬件上。
HDFS提供對應應用程序數據的高吞吐量訪問,並且適用於具有大數據集的應用程序。HDFS放寬了一些POSIX要求,
以實現對文件系統數據的流式訪問。HDF最初是爲作爲Apache Nutch Web搜索引擎項目的基礎結構而構建的。
使用HDFS想要解決的目的如下:
-
硬件故障導致數據丟失;
-
流數據訪問;
-
大數據存儲;
-
簡單的一致性模型;
-
凸顯“移動計算”比“移動數據”便宜;
-
跨異構硬件和軟件平臺的可移植性;
二、工作原理
其中最重要的兩部分:
-
NameNode(NN)
-
DataNode(DN)
HDFS具有主從master/slave架構設計結構。HDFS集羣由NameNode和管理系統文件的namespace和訪問控制規則組成。此外,還有許多數據節點DataNode, 通常是集羣總的每一個節點,用於管理和他們所運行的節點相連的存儲。HDFS打開文件系統的namespace並允許用戶數據存儲在文件中。在內部,文件備份成一個或者多個,這些塊存在一組DataNode中。NameNode執行文件系統namespace的操作,例如