Hadoop分布式文件系统(HDFS)的设计原则
在HDFS设计之初,设计者非常有远见,明确地设定了如下设计原则。
(1)存储超大文件:HDFS要能够管理超大容量的文件,典型的文件容量是从GB级别到TB级别。
(2)存储多种应用对象:这些大容量文件可以包含很多应用对象,如网页文档、日志记录等。一个文件实际上是由数亿(甚至数十亿)个对象组成的TB级的数据集。
(3)离线批处理数据访问:应用场景设定为离线批量数据处理,而不是交互式即时数据访问。
(4)容忍硬件故障:为了尽可能降低集群系统的建设成本,允许系统采用廉价的、故障率较高的PC服务器作为集群中的存储和运算节点。
(5)数据读/写操作的限定:HDFS采用“一次写入、多次读取”的数据读/写方式,文件仅支持在尾部追加式写操作,不允许在其他位置对文件进行任何修改,其目的是尽可能简化数据一致性控制机制,从而提高数据操作效率。
(6)支持多种硬件平台:HDFS可以运行在不同的平台上,如Linux集群、各种云平台等。
(7)就近计算原则:为了减少数据在网络中的传输量,数据计算应尽可能就近进行,通常运算所用的数据就在本节点。这种设计可以明显提高大数据的整体计算效率。