1,客户端向namenode发送数据上传的请求(包含数据长度信息)
hadoop fs -put abc.txt /aa
2,namnode在接收到客户端请求后,进行一系列检查
1,文件是否存在
2,上传的文件的目录是否存在,不存在会报错
3,查询权限
3,namenode检查目录,向客户端返回储存的节点信息
返回节点有一个原则:就近原则。
(优先返回客户端所在节点>>同机架节点>>不同机架节点)
比如:
一个上传的文件200M,此时就得且分为两个块blk_1,blk_2
blk_1: node1 node2 node4
blk_2: node2 node3 node4
4,客户端收到namenode返回的请求后,进行逻辑切块
切块分切物理切块和逻辑切分
逻辑切分:概念的切分
物理切分:真正切分,按照一个块128切分(1-127)
第二块128-
5,准备文件上传
6,构建通道pipline,根据块i