写文件(上传文件)流程:
- client端发送写文件请求,NameNode 检查文件是否存在,如果已存在,直接返回错误信息,否则,发送给client一些可用DataNode 节点
- client将文件分块,并行存储到不同节点上的DataNode中,发送完成后,client同时发送信息给NameNode 和DataNode
- NameNode 收到的client信息后,发送确信信息给DataNode
- DataNode 同时收到NameNode 和DataNode 的确认信息后,提交写操作。
读文件(下载文件)流程:
- client端发送读文件请求给NameNode ,如果文件不存在,返回错误信息,否则,将该文件对应的block及其所在DataNode 位置发送给client
- client收到文件位置信息后,与不同DataNode 建立socket连接并行获取数据。