HDFS写机制:
1、client客户端调用分布式文件系统对象DistributedFileSystem对象的create方法,创建一个文件输出流FSDataOutputStream对象。
2、DistributedFileSystem对象和Hadoop中的namenode进行一次远程RPC调用,在namenode中创建一个文件条目Entry,该条目没有任何的block。
3、client通过FSDataOutputStream文件输出流向datanode中写数据,数据首先被写入FSDataOutputStream内部的buffer中,然后被分成一个个的packet数据包。
4、以packet数据包为最小单位,向集群中的一个DataNode发送数据,在这组DataNode组成的Pipeline线管上一次传输packet数据包。
5、在Pipeline线管的反向上一次发送ack,最终由第一个DataNode发送ack给client客户端。
6、文件传输结束,客户端调用FSDataOutputStream的close方法关闭流。
7、客户端调用DistributedFileSystem的complete方法,通知namenode文件写入成功。