作业2
3.3.1 HDFS文件上传
3.3.2 HDFS文件下载
3.3.3 定位文件读取
4.1 HDFS写数据流程
(1)客户端通过Distributed FileSystem模块向NamNode节点请求上传文件,NameNode检查目标文件是否存在,父目录是否存在
(2)NamNode返回是否可以上传
(3)客户端请求第一个Block上传到哪几个节点上
(4)NameNode返回3个节点,d1,d2,d3
(5)客户端通过FSDataOutputStream模块请求d1上传数据,然后d1调d2,d2调d3,建立通信管道
(6)3节点依次应答客户端
(7)客户端开始往d1上传第一块数据,d1收到给d2,d2收到给d3,d1每次传一个packet就会放入应答队列等待应答
(8)当一个block传完后,客户端再次请求NameNode上传第二个block的服务器
4.2 HDFS读数据流程
(1)客户端通过Distributed FileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的节点地址
(2)根据就近原则选一台服务器,请求读取数据
(3)数据节点开始传输数据给客户端
(4)客户端以Packet为单位接受,先存在本地,然后写入目标文件