HDFS 写数据流程
第一步:客户端通过Distributed file system的api的open方法;
第二步:open方法发送请求到namenode,获得Block的位置信息(位置信息只有元数据才知道),将block的全部位置信息返还给客户端;
第三步:客户端收到block位置后开始读取,通过FSDataInputStream着api中的read方法读取;
第四步:通过FSDataInputStream着api进行并发的读取各个block,也就是一起读,在读的过程中只读其中的一个副本就可以类,优先读取离同一个机架;
第五步:关闭,并在客户端形成一个统一的文件

HDFS 读数据流程
第一步:客户端通过调用Distributed File System的api的create方法可以取创建一个文件;
第二步:Nameode可以接受到你的文件名是什么,文件大小用户是谁,namenode确定block的数量以及需要存放的datenode;
第三步:客户端开始读数据,通过FSDataInputStream的write方法进行写;
第四步:着方法只将一个block写到databode上,由当前的datanode去创建一个线程,往其他的datanode上按照当前的副本规则取复制其他副本;
第五步:返回一个回馈信息,表示上传完成
第六步:关闭,并汇报给namenode一个上传完毕的信息

本文详细解析了HDFS的数据读写流程,包括客户端如何通过API与NameNode交互获取Block位置,以及如何并发读取Block并形成统一文件的过程。同时,阐述了文件创建时NameNode如何确定Block数量和存放位置,以及数据写入后如何复制到其他DataNode并反馈上传完成信息。
212

被折叠的 条评论
为什么被折叠?



