HDFS 读写流程
HDFS读流程:
1.客户端distributedfileSystem.open()方法,去NameNode获取block的存储地址;
2.获取到地址后,并返回DFSInputFileStramm,
3.系统通过RPC远程访问DataNode,读取离任务最近节点的数据
4.通过循环调用read去读取DataNode里面的内容并返回给客户端;
5.读取完毕后关闭 fsinputStream
HDFS写流程
1.客户端向HDFS发起一个写请求,NameNode在确认有写入权限后,在NameNode生成一条记录,并返回一个DFSOutputStream;
2.将系统传入的数据分割成一个一个packet,然后写入到指定的NameNode
3.写入的DataNode是以Socket通信的管线通道;fileSystem依串行的方式写入DataNode,
写入完成之后会返回一个对应的Ack校验嘛;
4.当文件写入完成且Ack校验码无误;
6.系统先关闭管线通道,然后关闭FSOutPutSystem