hadoop 之 hdfs的读写流程

关于大数据学习的最好的网站就是官网http://www.apache.org/  

参考资料:http://www.apache.org/ 

免责声明:很多资料都是网上一步步搜集到的,感谢各位前辈默默无闻的奉献与付出,资料过多,不一一感谢,如果侵权,请及时联系作者本人或者投诉至平台,我会第一时间删除,纯分享。

HDFS的写入流程:

先看图片 摘抄至这个哥们的博客https://blog.csdn.net/whdxjbw/article/details/81072207

HDFS读流程

1/ 对于一开始的hdfs ,Client 向Namenode 发起访问请求,当Namenode收到请求时校验改请求是否有访问权限等,若无访问权限则直接返回报错,若有访问权限,此时,namenode返回数据存放的在哪一个datanode 节点上,(分块放置策略,默认每个块的大小为128M,该参数与硬件有关,一般不需要修改,默认即可),对于图上 1 2 流程

2/ 在返回的数据中 对于3 流程  FSDataOutputStream 这个流 会将块 根据副本放置策略(https://blog.csdn.net/weixin_38638777/article/details/103412076)分别以块块放置在3个节点上 对于流程 4  

3/ 当全部写入完成后,最后一个块会返回一个ACK (响应包/码) 表示写入完成,依次向前一个块报告(第三个向第二个块报告写入完成,第二个块向第一个块报告写入完成 依次 )当第一个块返回ACK信号时,表示该块放置完成,继续放置其他块(当写写入的文件大于128m时,会进行分块处理,每128M 为一块)

4/ 当数据完成写入在各节点时,关闭outputstream 流同时向namenode 报告写入完成信号 

HDFS的读流程:

HDFS读流程

读相对于写,简单一些
读详细步骤:

  1. client访问NameNode,查询元数据信息,获得这个文件的数据块位置列表,返回输入流对象。
  2. 就近挑选一台datanode服务器,请求建立输入流 。
  3. DataNode向输入流中中写数据,以packet为单位来校验。
  4. 关闭输入流

猜你喜欢

转载自blog.csdn.net/weixin_38638777/article/details/103413264