- 客户端通过Distributed FileSystem向NameNode请求上传文件;NameNode检查客户权限,查看文件是否存在,父目录是否存在。
- NameNode响应客户端可以上传文件
- 客户端请求上传第一个Black,让NameNode返回要上传的DataNode节点
- NameNode返回dn1,dn2,dn3表示用这三个节点存储
- 客户端通过FSDataOutputStream向dn1请求建立传输通道,dn1收到会去请求dn2,dn2收到回去请求dn3,将这个通信通道建立完成
- dn1,dn2,dn3会逐级应答
- 客户端开始向dn1上传第一个Block,以Packet为单位传输数据,dn1收到一个Packet就会往建立的通道下传。dn1每传一个Packet会放入应答队列等待应答。
- 当一个Black上传完成后,客户端会向NameNode请求第二Block上传的DataNode服务器。
1.客户端通过DistributedFileSystem向NameNode请求下载文件。
2.NameNode通过查询元数据,找到存储数据的DataNode地址
3 客户端挑选一台DataNode(就近原则,负载均衡),通过FSDataInputStream请求读取数据
4 DataNode开始给客户端传输数据
5 客户端以Packet为单位接收,先存在本地缓存,然后写入目标文件
HDFS读写流程
最新推荐文章于 2024-06-24 22:53:05 发布