(1)客户端将要读取的文件路径发送给namenode,namenode获取文件的元信息(主要是block的存放位置信息)返回给客户端,客户端根据返回的信息找到相应datanode逐个获取文件的block并在客户端本地进行数据追加合并从而获得整个文件
(2)详细步骤解析
1.跟namenode通信查询元数据,找到文件块所在的datanode服务器
2.挑选一台datanode(就近原则,然后随机)服务器,请求建立socket流
3.datanode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验)
4.客户端以packet为单位接收,现在本地缓存,然后写入目标文件