HDFS写文件流程:
1.客户端通过调用DistributedFileSystem的create方法创建新文件
2.DistributedFileSystem通过RPC调用namenode去创建一个没有blocks关联的新文件,创建前,namenode会做各种校验,比如文件是否存在,客户端有无权限去创建等。如果校验通过,namenode就会记录下新文件,否则就会抛出IO异常.
3.这样会返回FSDataOutputStream的对象,FSDataOutputStream被封装成DFSOutputStream.
DFSOutputStream可以协调namenode和datanode。客户端开始写数据到DFSOutputStream,
DFSOutputStream会把数据切成一个个小packet,然后排成队列data quene。
4.DataStreamer会去处理接受data queue,他先问询namenode这个新的block最