大数据学习之四 HDFS流程图解,网络拓扑,机架感知
HDFS读操作
流程解析:
- 客户端(client)向NameNode请求上传文件,NameNode检查目标文件是否已经存在,父目录是否已经存在。
- NameNode返回是否可以上传文件。
- 客户端请求第一个block(块,默认128MB)要上传到哪几个DataNode上。
- NameNode返回3个DataNode节点,分别为datanode1,datanode2,datanode3。
- 客户端请求datanode1上传数据,datanode1收到请求会继续调用datanode2,然后datanode2再继续调用datanode3,将这个通信管道建立完成
- datanode1,datanode2,datanode3逐级应答客户端
- 客户端开始往datanode1上传输第一个block(先从磁盘读取数据放到一个本地内存中缓存),以packet为单位,datanode1收到一个packet就会传给datanode2,datanode2再传给datanode3;datanode1没传递一个packet就会放入一个应答队列中等待应答。
- 当一个block传输完毕之后,客户端再次请求NameNode上传第二个block的服务器。(重复执行3-7步)