栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

大数据学习之路,HDFS的认识之读写流程(2)

大数据学习之路,HDFS的认识之读写流程(2)

HDFS的读写流程 HDFS的读流程


注解:HDFS client 调用FileSystem.open(filePath),与NameNode进行【RPC】通信(远程过程调用),返回该文件的block列表,然后返回给FSDataInputStream 对象 ,接下来HDFS cliet 调用FSDataInputStream .read方法与第一个块最近的DataNode进行读取,读取完成后,检查是否读完ok?如果ok,就会关闭与DataNode通信,如果不ok,就从第二个节点去读取,以此类推,当block列表全部读取完成了,Hdfs client 调用FSDataInputStream 的close方法,关闭数据流。

HDFS写流程


注解:HDFS client 调用FileSystem.create(filepath)方法,然后去和NameNode进行【RPC】通信,NameNode会检查这个文件是否存在,是否有权限创建这个文件,如果都可以,就创建一个文件,但是这个时候,文件是没有数据,也不关联block,NameNode会再根据文件的大小,块大小,副本数等;计算要上传多少的块和对应的DataNode节点,最终这个信息返回给客户端【FSDataOutputStream】对象,HDFS client调用客户端【FSDataOutputStream】的write方法,根据NameNode返回的信息,将第一个块的第一个副本写到DataNode1,写完复制到DataNode2,再复制到DataNode3,当我们三个副本写完,DataNode3返回ack【确认字符】给DataNode2,DataNode2接收到ack,返回ack给DataNode1,DataNode1接收到ack,返回ack给到【FSDataOutputStream】,告诉它第一个块的三副本写完了,依此类推,当所有的块都写完了,HDFS client 调用【FSDataOutputStream】的close方法,关闭数据流,然后调用FileSystem.complete方法,告诉NameNode文件写成功了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774408.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号