分布式文件系统在大数据时代有着广泛的应用前景,它们为存储和处理来自网络和其它地方的超大规模数据提供所需的扩展能力。Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统。让我们通过本文来了解。

Hadoop散布式文件体系(HDFS)是一种被规划成合适运转在通用硬件上的散布式文件体系。HDFS是一个高度容错性的体系,合适布置在廉价的 机器上。它能供给高吞吐量的数据拜访,十分合适大规模数据集上的运用。要了解HDFS的内部作业原理,首先要了解什么是散布式文件体系。

还不明白HDFS的作业原理?快来扫扫盲(hdfs工作原理简练)  HDFS Hadoop 分布式文件系统 第1张

1、散布式文件体系

多台核算机联网协同作业(有时也称为一个集群)就像单台体系相同处理某种问题,这样的体系咱们称之为散布式体系。

散布式文件体系是散布式体系的一个子集,它们处理的问题便是数据存储。换句话说,它们是横跨在多台核算机上的存储体系。存储在散布式文件体系上的数据自动散布在不同的节点上。

散布式文件体系在大数据年代有着广泛的运用远景,它们为存储和处理来自网络和其它当地的超大规模数据供给所需的扩展才能。

2、别离元数据和数据:NameNode和DataNode

存储到文件体系中的每个文件都有相关联的元数据。元数据包含了文件名、i节点(inode)数、数据块方位等,而数据则是文件的实践内容。

在传统的文件体系里,由于文件体系不会跨过多台机器,元数据和数据存储在同一台机器上。

为了构建一个散布式文件体系,让客户端在这种体系中运用简略,而且不需求知道其他客户端的活动,那么元数据需求在客户端以外保护。HDFS的规划理念是拿出一台或多台机器来保存元数据,并让剩余的机器来保存文件的内容。

NameNode和DataNode是HDFS的两个首要组件。其间,元数据存储在NameNode上,而数据存储在DataNode的集群上。 NameNode不只要办理存储在HDFS上内容的元数据,而且要记载一些工作,比方哪些节点是集群的一部分,某个文件有几份副本等。它还要决定当集群的节点宕机或许数据副本丢掉的时分体系需求做什么。

存储在HDFS上的每份数据片有多份副本(replica)保存在不同的服务器上。在本质上,NameNode是HDFS的Master(主服务器),DataNode是Slave(从服务器)。

3、HDFS写进程

NameNode担任办理存储在HDFS上全部文件的元数据,它会承认客户端的恳求,并记载下文件的姓名和存储这个文件的DataNode调集。它把该信息存储在内存中的文件分配表里。

例如,客户端发送一个恳求给NameNode,说它要将“zhou.log”文件写入到HDFS。那么,其履行流程如图1所示。详细为:

***步:客户端发音讯给NameNode,说要将“zhou.log”文件写入。(如图1中的①)

第二步:NameNode发音讯给客户端,叫客户端写到DataNode A、B和D,并直接联络DataNode B。(如图1中的②)

第三步:客户端发音讯给DataNode B,叫它保存一份“zhou.log”文件,而且发送一份副本给DataNode A和DataNode D。(如图1中的③)

第四步:DataNode B发音讯给DataNode A,叫它保存一份“zhou.log”文件,而且发送一份副本给DataNode D。(如图1中的④)

第五步:DataNode A发音讯给DataNode D,叫它保存一份“zhou.log”文件。(如图1中的⑤)

第六步:DataNode D发承认音讯给DataNode A。(如图1中的⑤)

第七步:DataNode A发承认音讯给DataNode B。(如图1中的④)

第八步:DataNode B发承认音讯给客户端,表明写入完结。(如图1中的⑥)

还不明白HDFS的作业原理?快来扫扫盲(hdfs工作原理简练)  HDFS Hadoop 分布式文件系统 第2张

图1 HDFS写进程示意图

在散布式文件体系的规划中,应战之一是怎么保证数据的一致性。关于HDFS来说,直到全部要保存数据的DataNodes承认它们都有文件的副本 时,数据才被以为写入完结。因而,数据一致性是在写的阶段完结的。一个客户端不管挑选从哪个DataNode读取,都将得到相同的数据。

4、HDFS读进程

为了了解读的进程,能够以为一个文件是由存储在DataNode上的数据块组成的。客户端查看之前写入的内容的履行流程如图2所示,详细步骤为:

***步:客户端问询NameNode它应该从哪里读取文件。(如图2中的①)

第二步:NameNode发送数据块的信息给客户端。(数据块信息包含了保存着文件副本的DataNode的IP地址,以及DataNode在本地硬盘查找数据块所需求的数据块ID。) (如图2中的②)

第三步:客户端查看数据块信息,联络相关的DataNode,恳求数据块。(如图2中的③)

第四步:DataNode回来文件内容给客户端,然后封闭衔接,完结读操作。(如图2中的④)

还不明白HDFS的作业原理?快来扫扫盲(hdfs工作原理简练)  HDFS Hadoop 分布式文件系统 第3张

图2 HDFS读进程示意图

客户端并行从不同的DataNode中获取一个文件的数据块,然后联合这些数据块,拼成完好的文件。

5、经过副本快速康复硬件毛病

当全部运转正常时,DataNode会周期性发送心跳信息给NameNode(默许是每3秒钟一次)。假设NameNode在预订的时刻内没有收到 心跳信息(默许是10分钟),它会以为DataNode出问题了,把它从集群中移除,而且发动一个进程去康复数据。DataNode或许由于多种原因脱离 集群,如硬件毛病、主板毛病、电源老化和网络毛病等。

关于HDFS来说,丢掉一个DataNode意味着丢掉了存储在它的硬盘上的数据块的副本。假设在恣意时刻总有超越一个副本存在(默许3个),毛病 将不会导致数据丢掉。当一个硬盘毛病时,HDFS会检测到存储在该硬盘的数据块的副本数量低于要求,然后自动创立需求的副本,以到达满副本数状况。

6、跨多个DataNode切分文件

在HDFS里,文件被切分红数据块,一般每个数据块64MB~128MB,然后每个数据块被写入文件体系。同一个文件的不同数据块不一定保存在相同的DataNode上。这样做的优点是,当对这些文件履行运算时,能够经过并行方法读取和处理文件的不同部分。

当客户端预备写文件到HDFS并问询NameNode应该把文件写到哪里时,NameNode会告知客户端,那些能够写入数据块的 DataNode。写完一批数据块后,客户端会回到NameNode获取新的DataNode列表,把下一批数据块写到新列表中的DataNode上。

转载请说明出处
知优网 » 还不明白HDFS的作业原理?快来扫扫盲(hdfs工作原理简练)

发表评论

您需要后才能发表评论