HDFS 读流程和写流程

读流程

1.客户端向namenode请求下载⽂件,namenode通过查询元数据,找到⽂件块所在的datanode地址。
2.挑选⼀台datanode(就近原则,然后随机)服务器,请求读取数据。
3.datanode开始传输数据给客户端(从磁盘⾥⾯读取数据放⼊流,以packet为单位来做校验)。
4.客户端以packet为单位接收,先在本地缓存,然后写⼊⽬标⽂件。

写流程

1.客户端向namenode请求上传⽂件,namenode检查⽬标⽂件是否已存在,⽗⽬录是否存在。
2.namenode返回是否可以上传。
3.客户端请求第⼀个 block上传到哪⼏个datanode服务器上。
4.namenode返回3个datanode节点,分别为datanode1、datanode2、datanode3。
5.客户端请求datanode1上传数据,datanode1收到请求会继续调⽤datanode2,然后datanode2调⽤datanode3,将这个通信管道建⽴完成。
6.datanode1、datanode2、datanode3逐级应答客户端
7.客户端开始往datanode1上传第⼀个block(先从磁盘读取数据放到⼀个本地内存缓存),以packet为单位
8.收到⼀个packet就会传给datanode2,datanode2传给datanode3;datanode1每传⼀个packet会放⼊⼀个应答队列等待应答
9.当⼀个block传输完成之后,客户端再次请求namenode上传第⼆个block的服务器。(重复执⾏3-7步)

你可能感兴趣的:(hdfs,hadoop,大数据)