翻了翻以往做的笔记,分享一个hdfs的读写流程
hdfs读写流程在上学期间可没少抄写。。。
HDFS读写流程
一、 写流程
1、 客户端访问NameNode,获取元数据信息,NameNode判断写入的文件是否存在。
1) 如果要写入文件已存在,返回给客户端不可写入。
2) 如果不存在,返回给客户端可以写入、DataNode信息。
2、 缓存文件第一个块到本地
3、 缓存块成功后,NameNode会给客户端返回一个DataNode的列表
1) 列表中是该块可以存放的位置,包括冗余备份
4、 客户端随机连接到DataNode,把第一个块存进来并备份
5、 后续文件所有的块重复以上操作,直到文件所有块的写入完成
6、 删除本地缓存。
7、 记录文件信息到edits文件中,并更新到NameNode的元数据(内存)中
8、 直到所有操作完成,写操作完成。
二、 读流程
1、客户端与NameNode通讯获取文件的块位置信息,其中包括了块的所有冗余备份的位置信息:DataNode的列表
2、客户端获取文件位置信息后直接同有文件块的DataNode通讯,读取文件
3、如果第一个DataNode无法连接,客户端将自动联系下一个DataNode
4、如果块数据的校验值出错,则客户端需要向NameNode报告,并自动联系下一个DataNode
都是上学期间的笔记,,,