hdfs的数据流,的写入过程,也就是,文件从本地上传到hdfs的过程,我们来看原理.
1.首先第一步我们的客户端去向,我们的完全分布式集群,像namenode节点,发起一个文件上传请求,并且把要上传的文件的路径带上。
2.NameNode节点在收到客户端上传文件的请求以后,会去检测当前能不能上传文件,如果可以的话,会给客户端回复可以上传的应答。
3.客户端去创建一个DistributedFileSystem对象,然后用这个客户端对象,去请求上传第一个block(从第0个字节到第128M个字节。),同时会请求namenode,告知自己
应该上传到哪个datanode服务器上去.
4.namenode节点,回复给客户端,dn1,dn2,dn3这3个节点表示可以采用这三个节点来存储数据。
注意所以这里具体返回哪些节点给客户端主要取决于这些节点离的客户端的距离,近的会优先返回,以及这些节点的负载,负载小的会优先返回.
5.客户端收到可以上传的datanode节点信息以后,去创建FSDataOutpu