读数据流程
1.客户端通过Distributed FileSystem向NameNode请求下载文件,namenode检查下载的合法性(是否有权限下载以及下载的合法性),NameNode通过查询元数据,找到文件块所在的DataNode地址。
2.挑选一台DataNode(网络拓扑上的就近原则,如果都一样,则随机挑选一台DataNode)服务器,请求建立socket流。
3.DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。
4.客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。(把下载的block按照顺序依次输入到输入流里面,拼接起来生成最后的文件)