写数据流程:
1、客户端向namenode发起请求(需要写数据的请求),namenode保存了各个节点的状态,它知道在哪个datanode上还有空间可以用,能存储这个文件。namenode发现datanode 1、2、3有空间。
2、namenode将这个信息发给客户端。
3、客户端将这个data文件进行分块(1、2)。
4、客户端将数据块1及namenode提供的datanode的相关信息一起传给了datanode1,
5、datanode1对数据块1进行了保存,它知道数据块1要备份3份,保存到数据块1、2、3,
6、datanode1将数据块1以及namenode提供的相关信息依次传给datanode2和3
7、当datanode1、2、3保存完数据块1之后,它反馈给namenode,告诉我保存了数据块1,然后更新了namenode上面的原信息的数据列表,
8、namenode告诉客户端,数据块1已经存储完了
9、开始存储数据块2,过程和数据块1存储的过程是完全一样的。
图片.png
网友评论