HDFS运行原理(通俗易懂)

您所在的位置:网站首页 冷媒原理通俗易懂 HDFS运行原理(通俗易懂)

HDFS运行原理(通俗易懂)

2024-02-06 15:32| 来源: 网络整理| 查看: 265

hdfs读写流程 hdfs读流程hdfs写流程

hdfs读流程

HDFS文件读流程: 在这里插入图片描述

客户端读取数据的过程如下:

(1)使用HDFS提供的客户端向远程的NameNode发起RPC请求。 (2)NameNode会视情况返回文件的部分或者全部块列表,对于每个块,NameNode都会返回副本的DataNode地址。 (3)客户端会选择离其最近的DataNode来读取块,如果客户端本身就是DataNode,那么将从本地直接获取数据。 (4)读取完当前块数据后,关闭当前的DataNode连接,并为读取下一个块寻找最佳的DataNode。每读取完一个块都会进行checksum验证,如果读取DataNode时出现错误,客户端会通知NameNode,再从下一个拥有该副本的DataNode继续读取。 (5)当读取完块列表后,并且文件读取还没有结束,客户端会继续向NameNode获取下一批块列表。 (6)一旦客户端完成读取操作后,就会调用close方法来完成资源的关闭操作。

hdfs写流程

HDFS文件写流程: 在这里插入图片描述 客户端写数据的过程如下:

(1)使用HDFS提供的客户端向远程的NameNode发起RPC请求。NameNode会检查创建的文件是否已经存在,创建者是否有权限进行操作,成功则为文件创建一个记录,否则会让客户端抛出异常。 (2)开始写文件时,客户端会将文件切分成多个packets(数据包),并向NameNode申请块,获取用来存储副本的合适的DataNode列表。 (3)客户端调用FSDataOutputStream API的write方法,首先将其中一个块写到DataNode上,每一个块默认都有3个副本,并不是由客户端分别往3个DataNode上写3份数据,而是由已经上传了块的DataNode产生新的线程,由这个DataNode按照副本规则往其他DataNode写副本。 (4)FSDataOutputStream内部维护着一个确认队列,当接收到所有DataNode确认写完的消息后,数据才会从确认队列中删除。 (5)客户端完成数据的写入后,会对数据流调用close方法来关闭相关资源。

ps:上文即为本人对hdfs的读写流程的理解,有不足之处请指出。 ps:望多多支持,后续更新中。。。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3