HDFS的读写过程
一、HDFS的写过程
Client节点,调用create方法创建DistributedFileSystem对象,然后向NameNode发送写请求,NameNode允许之后,返回DataNode节点信息给Client节点,接着Client调用write方法,创建FSDataOutputStream对象,根据NameNode返回的DataNode节点信息,开始向指定的DataNode写入数据,数据以Block形式存储,当一台DataNode接收完毕,直接返回ack,表示接收成功,Client接收到ack后,关闭Output对象,告知NameNode写操作完成。假如设置3分备份,那么DataNode之间根据“机架感知策略”,复制两份副本到其他DataNode节点。
二、HDFS的读过程
HDFS的读过程比写过程就简单多了。client节点调用open方法,创建DistributedFileSystem对象,向NameNode发送读取相关数据的请求,NameNode返回相应的数据块信息,Client创建FSDataInputStream对象,根据NameNode返回的数据块信息,到指定的DataNode节点读取数据,最后Client关闭Input对象。