写
现在客户端要上传一个300M的文件,这个文件被客户端分成三块。
第一步:客户端向namenode请求上传文件
第二步:namenode检查元数据,看是否文件已经存在等,然后对客户端发送可以上传的信息
第三步:客户端通知namenode上传第一块数据
第四步:namenode返回第一块数据的存放节点data1、data2、data4
副本存放原则:1.第一块放在跟客户端同机架的其他机器上
2.第二块放在跟第一块不同机架的其他服务器上
3.第三块放在跟第二块相同机架的其他服务器上(第三块放在跟第一块相同机架的不同服务器上)
第五步:客户端通过rpc方式连接dt1,并上传第一块数据到dt1,datanode之间有管道连接,数据可以通过管道向dt2,dt4传输
第六步:datanode会把接受数据的情况返给客户端
第七步:客户端向namenode传输上传成功的消息
读
第一步:客户端向namenode请求下载文件
第二步:namenode返回下载文件的元数据(数据块的储存信息、顺序)
第三步:客户端与datanode建立连接,请求下载第一块数据