HDFS——写文件流程
上篇文章讲了数据传输的格式,本文就来说说hdfs中写文件的流程。 hdfs客户端写文件的流程,大体可以分为两个步骤:第一步是创建或打开文件,第二步是进行block的写操作。 block的写操作具体又包括向NN请求添加一个新的block,然后根据NN的返回结果,与对应的DN建立连接,并进行数据的发送。 当一个block写完时,再次向NN请求添加新的block,同样根据返回结果与对应的DN建立连接并发送数据,之后不断重复这个过程,直到文件内容全部写完。 下图以创建文件为例,展开描述详细流程: 向NN发送创建文件请求首先,客户端向NN发送创建文件的请求,在请求中指明文件的位置,文件的权限,文件的block副本数,block大小等。NN收到请求后,进行有效性检查,以及相应的鉴权动作,然后将操作写入editlog,最后给客户端应答。 向NN发送添加block请求文件创建成功后,对于业务层的代码来说就是直接进行write写数据了,但在客户端的底层实现中,会先向NN发送一个新增block的请求。NN收到请求后,主要执行一系列的分配算法(涉及就近分配,按存储策略分配,按机架感知策略分配,DN的数据均衡...