首页 理论教育 HDFS工作原理简介

HDFS工作原理简介

时间:2023-06-28 理论教育 版权反馈
【摘要】:下面以一个文件File A为例,说明HDFS的工作原理。HDFS按默认配置将文件分布在3个机架上Rack1、Rack2、Rack3。在读取文件过程中,DataNode向NameNode报告状态。每个DataNode会周期性地向NameNode发送心跳信号和文件块状态报告,以便NameNode获取到工作集群中DataNode状态的全局视图,从而掌握它们的状态。⑤以此类推,直到将Block1发送完毕。

HDFS工作原理简介

下面以一个文件File A(大小100 MB)为例,说明HDFS的工作原理。

6.1.4.1 HDFS的读操作

HDFS的读操作原理较为简单,Client要从DataNode上读取File A。而File A由Block1和Block2组成。其流程如图6-3所示。

图6-3 HDFS读操作流程

左侧为Client,即客户端。FileA分成两块,Block1和Block2。

右侧为Switch,即交换机。HDFS按默认配置将文件分布在3个机架上Rack1、Rack2、Rack3。

过程步骤如下:

(1)连线①:Client向NameNode发送读请求。

(2)连线②:NameNode查看Metadata信息,返回File A的Block的位置。

Block1位置:host2,host1,host3(如图6-3浅色背景);Block2位置:host7,host8,host4(如图6-3深色背景)。

(3)Block的位置是有先后顺序的,先读Block1,再读Block2。而且Block1去host2上读取,然后Block2去host7上读取。

在读取文件过程中,DataNode向NameNode报告状态。每个DataNode会周期性地向NameNode发送心跳信号和文件块状态报告,以便NameNode获取到工作集群中DataNode状态的全局视图,从而掌握它们的状态。如果存在DataNode失效的情况时,NameNode会调度其他DataNode执行失效节点上文件块的读取处理。

6.1.4.2 HDFS的写操作

HDFS中Client写入文件File A的原理,其流程如图6-4所示。

(1)Client将FileA按64MB分块。分成两块,Block1和Block2。

(2)连线①:Client向NameNode发送写数据请求。(www.xing528.com)

(3)连线②:NameNode记录着Block信息,并返回可用的DataNode。

Block1位置:host2,host1,host3可用(如图6-4浅色背景);Block2位置:host7,host8,host4可用(如图6-4深色背景)。

图6-4 HDFS写操作流程

(4)Client向DataNode发送Block1,发送过程是以流式写入。流式写入过程如下:

①将64MB的Block1按64KB大小划分成package。

②Client将第一个package发送给host2。

③host2接收完,将第一个package发送给host1;同时Client向host2发送第二个package。

④host1接收完第一个package后,发送给host3;同时接收host2发来的第二个package。

⑤以此类推,直到将Block1发送完毕。

⑥host2,host1,host3向NameNode,host2向Client发送通知,说明消息发送完毕。

⑦Client收到host2发来的消息后,向NameNode发送消息,说明写操作完成。这样就完成Block1的写操作。

⑧发送完Block1,再向host7,host8,host4发送Block2。

⑨发送完Block2,host7,host8,host4向NameNode;host7向Client发送通知。

⑩Client向NameNode发送消息,说明写操作完成。

在写文件过程中,每个DataNode会周期性地向NameNode发送心跳信号和文件块状态报告。如果存在DataNode失效的情况,NameNode会调度其他DataNode执行失效节点上文件块的复制处理,保证文件块的副本数达到规定数量。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈