1. 客户端向NameNode发出写文件请求。
2.检查是否已存在文件。检查权限。若通过检查,直接先将操作写入EditLog,并返回输出流对象。
3.NameNode返回是否可以上传。
4.client请求第一个block.
5.NameNode返回n个DataNode服务器,如ABC.
6.client请求最近的第一个DataNodeA节点,此后client端和多个DataNode构成pipeline管道。
7.当一个Block传输完成之后,client再次请求NataNode上传第二个block的服务器。
8.写完数据,关闭输出流。
9.发送完成信号给NameNode.