写流程
1.启动NN进程,提供分布式客户端
2.客户端发送写请求,NN判断是否有权限,路径是否合法
3.NN进程判断合法,返回允许上传文件
4.客户端根据文件设置大小,请求NN发送DN列表
5.NN进程根据文件副本数,根据机架感知,返回dn列表
6.客户端会请求举例最近的DN节点,再由DN列表中的每个DN节点都请求举例最近的DN节点,建立数据传输通道
7.通道建立完成,客户端将第一块的数据,封装为一个个packet,发送到通道的下一个节点
通道的每一个DN节点在收到packet后,进行校验,检验合法,罗盘存储,将packet发送到下一个DN节点,回复客户端ack确认消息!
8.第一个块传输完成后,DN向NN上报块的消息,只要有一个DN节点上报块信息,NN就认为这个块已经传输完成,通道关闭,
开始下一个块的传输
9.下一个块依次按照④-⑧流程传输
10.所有的块传输完成后,NN响应客户端传输完成,客户端关闭输出流