有关HDFS写流程的系列文章:
【精】彻底吃透HDFS写流程(1)–BlockConstructionStage
使用HDFS API写数据时,首先先要拿到输出流,然后才可以写数据,获取输出流的方法为:DistributedFileSystem#create。此方法又会调用DFSClient#create。
在DFSClient#create中,调用了DFSOutputStream.newStreamForCreate创建DFSOutputStream输出流对象。newStreamForCreate方法里面做了很多事:
① 调用create RPC申请在Namenode侧创建一个文件,并返回一个HdfsFileStatus对象。
② 把第一步中返回的HdfsFileStatus对象传入DFSOutputStream构造函数中,构造一个DFSOutputStream对象。
③ 启动DFSOutputStream对象中的DataStreamer线程。
本文我们就来看第①步中NameNode侧执行create并返回HdfsFileStatus的逻辑。后续有关DataStreamer的内容再开一篇新的小节讲解。
一、HdfsFileStatus首先要明确HdfsFileStatus这个接口是干嘛的。一起来看下,Doc里写道:HDFS metadata for an entity in the filesystem。通俗一点来讲,HdfsFileStatus就代表了HDFS中一个INode实体的元数据信息。
HdfsFileStatus是一个接口,其中有个内部类Builder,用于构建HdfsFil



