-
客户端上传数据,先请求namenode,请求上传a.txt 300M 3个默认128M一个切块
-
Namenode接收客户端的请求 ,开始校验集群中的存储状态
-
检验完成集群状态ok,开始进行元数据的规划(计算
-
返回给客户端一个检验ok+meta(元数据)
-
在数据块上传之前,先ping一下建立对应的连接通道
-
Ping通了之后,响应给客户ok信息,通过本地的Io流读取文件,读的时候就变成了字节,通过网络分布输出流开始把把字节封装成一个datapackage,传送出去
-
开始上传数据,然后通过本地的网络输入流写入到本地中,然后本地分布式输出流写道本地磁盘中,同时往另一台机器上,写入副本,同时在往另一台机器上发送,一共存储三份,当传入第一台机器的时候宕机了,任务失败了,然后namenode从新分发一下,当第二台或者第三台机器坏了,第一台机器上传成功了,说明也上传成功
-
第一台设备上传成功了然后相应给客户端ok
-
第二块数据和第三块数据上传数据 同理执行上面步骤
三块数据上传数据 同理执行上面步骤