Hdfs写数据流程
我的hadoop集群是三台服务器,分别为hadoop101,hadoop102,hadoop103。其中,namenode部署在hadoop101上面,三台服务器分别部署一个datanode,secondaryNamenode在Hadoop103上。
一,客户端创建一个文件系统对象向NameNode申请上传文件到hdfs的某个目录。
二,NameNode响应客户端同意上传。
三,客户端对文件按照指定大小(默认为128M)进行切块,然后请求传输第一块。
四,NameNode响应客户端同意上传并按照文件指定的备份数(我这里是按照配置的3)分配服务器以及返回服务器信息。
五,客户端开始向NameNode分配的服务器以此进行请求上传,这里是客户端请求第一个服务器,第一个服务器请求第二个服务器,第二个请求第三个。。。最终形成一个链式的传输通道。
六,各个服务器应答成功,按照刚才的链式通道,从最后一个依次向前返回应答信号,最终传输到客户端。
七,开始传输文件,从客户端开始,依次按照刚才形成的链式通道进行传输。
八,各个服务器传输完成,客户端将传输完成的信息报给NameNode,NameNode将该块的元数据存储起来。
依次传输各个块。。。。。