题目三、简述 HDFS 的读写流程
一、读流程:
客户端发起 RPC 请求到 NameNode 中,NameNode 收到请求后,进行以下几步校验,以校验文件存在与否。
(一)将文件的 block 对应的地址(一个 block 对应多个地址)以队列的形式,返回给客户端。
(二)客户端将各个地址依次取出。
(三)从离该客户端较近的地址中取数据。
(四)读完一个 block,会依次读取下一个,直到所有 block 都读完。
二、写流程:
客户端发起 RPC 请求到 NameNode,该请求包含对文件信息的描述。NameNode 收到请求后,进行以下几步校验。
(一)用户是否有权限。
(二)检查是否有同名文件。
(三)通过文件信息,计算数据块,分配块存储地址。
(四)将地址放入队列返回给客户端。
(五)客户端收到地址后,将数据进行封包,写入对应 DataNode 节点上。
(六)当写完所有的 block 都放置成功后,客户端通知 NameNode 关流,同时将该文件更改为不可再写。
版权声明: 本文为 InfoQ 作者【arctec】的原创文章。
原文链接:【http://xie.infoq.cn/article/0f58072756f7b132d9fdefd50】。未经作者许可,禁止转载。
评论