HDFS是Hadoop的核心之一,是一个分布式文件系统。所谓分布式文件系统,就是多个节点通过网络形成一个整体系统,它和单机文件系统的最大区别在于,可以存储一个远超单机存储能力的文件。
其存储方式大致就是:把文件分隔成若干个份,存放在不同的节点上,再由一个角色(HDFS中是Namenode)负责记录文件的某一份存放在哪个节点上。当用户想要读取文件的时候,首先会和Namenode交互,获取文件数据的具体存放位置,然后在和对应节点进行交互,从而获取文件数据。
1 HDFS的设计目标
HDFS在设计之初,就已经假设了很多极端情况,并对这些情况作了很好的处理,因此HDFS的可靠性非常好。下面详细介绍:
硬件容易发生故障
HDFS假设硬件发生故障是一个正常事件,HDFS在遇到硬件故障时,会通过备份机制很好的保障数据不丢失,并且还可以对用户屏蔽故障感知
数据量大
HDFS假设运行在HDFS平台上的应用都是具有很大的数据集。因此HDFS可以很好的协调多个节点来存储这些大文件。但是伴随的是,HDFS对于小而多的文件的处理能力不是很好。
简化一致性模型
HDFS认为文件一旦被写入之后,就会被持久化保存,不被修改。这个假设有一定的道理,因为HDFS被设计为存储大文件,因此对于大文件而言即使有错误,相对于巨大的总体数据而言也会显得不足以对最终结果产生影响;另外对大文件进行修改,本身就是一件困难的事情,首先去定位目标数据所在位置,都需要费一番功夫,因此HDFS干脆不支持对文件进行修改。</