1、客户端:namenode 我要写数据! 我写的数据名字叫/test/a.txt 我有三个副本,按照128M切块
2、namenode:我查过了,你这个目录存在 可以写入(你这个文件都没有写个P)
3、客户端: 我要写第一个文件了
4、namenode:好的,给你三个机器,dream1,dream2,dream3 往这里写吧,而且blockId=7740,你们写块的时候 都要带上blockId=7740的标识
经过一个交换机我们称为1跳
客户端----->交换机A------->dream1 :我们成为1跳
客户端----->交换机A------->dream2:我们成为1跳
客户端----->交换机A------->交换机C-------->交换机B---------->dream3 :我们成为3跳
5、客户端:dream1,dream2,dream3,我到dream1、dream2、dream4有一跳,到dream3有三跳,那我往dream1写了。我得把我的副本地址和blockId都告诉他,让他们建立好PIPELINE
6、dream1的datanode:收到,你还要写到dream2和dream3吗,我这就告诉dream2,我写给dream2,让dream2写给dream3,我们几个datanode通起来 ----数据流建立完成后---- 客户端我们准备好了 你写吧
7、客户端:好的datanode(dream1),开搞
8、datanode:传输完成 数据流关闭了。
重复3-8
9、客户端:namenode我写完了,你确认一下
10、确认完闭,副本数量正常(不正常我会帮你复制的)