HDFS分布式文件系统学习(1)

网友投稿 831 2022-05-28

Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。

HDFS非常适合大规模数据集的存储和应用,可以用于存储网站数据、交通电子眼、气象数据、传感器数据等。

HDFS采用了典型的Master/Slave系统架构,一个HDFS集群通常包含一个NameNode节点和若干个DataNode节点。一个文件被分成了一个或者多个数据块,并存储在一组DataNode上,DataNode节点可分布在不同的机架。NameNode执行文件系统的名字空间打开、关闭、重命名文件或目录等操作,同时负责管理数据块到具体DataNode节点的映射。在NameNode的统一调度下,DataNode负责处理文件系统客户端的读/写请求,完成数据块的创建、删除和复制。

(1) NameNode:(管理节点)管理文件系统命名空间的主服务器和管理客户端对文件的访问。如打开,关闭和重命名文件和目录。负责管理文件目录、文件和block的对应关系以及block和datanode的对应关系,维护目录树,接管用户的请求。这些信息以两种形式存储在本地文件系统中,一种是命名空间镜像,一种是编辑日志。从NameNode中可以获取每个文件的每个块存储在DataNode节点的位置,NameNode会在每次启动系统时动态地重建这些信息。客户端通过NameNode获取元数据信息,与DataNode进行交互以访问整个文件系统。

(2) DataNode:(数据节点)DataNode是文件系统的工作节点,供客户端和NameNode调用并执行具体任务,存储文件块。DataNode通过心跳机制定时向NameNode发送所存储的文件块信息,报告其工作状态。DataNodes还执行块创建,删除。

HDFS分布式文件系统学习(1)

(3) Client:(客户端)代表用户通过与NameNode和DataNode交互来访问整个文件系统,HDFS对外开放文件命名空间并允许用户数据以文件形式存储。用户通过客户端(Client)与HDFS进行通讯交互。

(4) 数据块:数据块是磁盘进行数据读/写操作的最小单元。文件以块的形式存储在磁盘中,文件系统每次都能操作磁盘数据块大小整数倍的数据。HDFS中的文件也被划分为多个逻辑块进行存储。Hadoop 2.0版本以后的数据块大小默认为128M。HDFS 作为一个分布式文件系统,使用数据块进行存储有以下优势:

(a)支持大规模文件存储:文件以块为单位进行存储,一个大规模文件可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上,因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远大于网络中任意节点的存储容量。

(b)简化系统设计:首先,大大简化了存储管理,因为文件块大小是固定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次,方便了元数据的管理,元数据不需要和文件块一起存储,可以由其他系统负责管理元数据。

(c)适合数据备份:每个文件块都可以冗余存储到多个节点上,大大提高了系统的容错性和可用性。

Hadoop 分布式

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【华为云入门】如何快速创建弹性云服务器
下一篇:常用的Linux命令
相关文章