分布式文件系统HDFS
参考书目:人民邮电出版社《大数据技术》
一、概述
1.什么是分布式文件系统
分布式文件系统(Distributed File System)是一种通过网络连接多台主机并在这些主机上进行分布式文件存储的文件系统,目前被广泛应用的有GFS和HDFS
2.什么是计算机集群结构
若干主机放在机架上,若干机架通过交换机相连共同构成的一个计算机集群通常可用于分布式文件系统。
3.分布式文件系统的结构
在windows或者Linux操作系统中,文件系统会把磁盘空间划分为固定大小的一块,被称为“磁盘块”,文件系统中“块”的大小通常是磁盘块大小的整数倍,以便于读写。当一个文件小于数据块,他也会完整占用整个数据块。
分布式文件系统也有块的概念,只是在普通操作系统中,一个块通常比较小,是以字节为单位的,但是对于分布式文件系统,比如HDFS,一个块默认为64MB,而且如果一个文件大小小鱼一个数据块时,他也不单独完全占用一个数据块。
分布式文件系统在物理层面上由一个个节点组成,这些节点分为两类,一类叫做“主节点”/“名称节点”,另外一种叫做“从节点”/“数据节点”。主节点会负责一些重要的关乎大局的事务,比如文件和目录的创建删除重命名等,以及存储了数据节点和文件之间的映射关系,数据节点负责数据的存储,其他概不负责。
在数据的读写过程中,流程往往是这样的:
- 客户端向名称节点发送访问请求
- 名称节点接受该请求并查找映射关系,寻找对应需要的数据节点
- 名称节点把客户端需要访问的数据节点的地址发给客户端
- 客户端直接访问名称节点进行读写
为了保证数据存储的完整,分布式文件系统通常会采用多副本的存储方式,同样的一个文件块会复制出多个副本存储在不同节点上,并且不同节点还会分布在不同的机架上,这样就最大程度的减少了节点故障甚至机架故障给整个系统带来的破坏。
由于这些特性,分布式文件系统处理小文件不仅无法发挥其优势,甚至会影响系统的性能。
4.分布式文件系统的设计需求
透明性、并发控制、文件复制、硬件和操作系统的异构性、可伸缩性、容错、安全需求
二、HDFS简介
HDFS原来是Apache Nutch搜索引擎的一部分,后来独立成为一个子项目,并和MapReduce一起成为Hadoop的核心组成部分。HDFS支持流数据读取和处理超大规模文件,并且可以在廉价的普通机器组成的集群上部署和使用,