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一个上传完毕的信息