废话不多说,先上图
科学已经证明,人记住一张图片要比记住一堆文字要容易的多,这就是我们右脑的作用。那么所以我觉得先记住一张图,以后只要想到这张图那么HDFS整个的文件写入流程就会很容的回想起来。
那么接下来我们就分析一下这张图中都有哪些步骤:
第一步:客户端向NN发送写入文件申请,这时NN就要看看我系统里边有没有你要写入的这文件,要是有不好意思,你就不能写入了,要是没有OK可以写入。
第二步:客户端继续请求上传第一个block并问NN,我这块应该往哪里上传呢?这时NN就会根据机架感知原理以及我们设置的文件备份策略,默认备份的数量是3,这样的话就是本地存一份,同机架上某节点一份,还有不同机架上某节点上一份。NN就把这三个地址给到客户端。
第三步:这时客户端会请求第一台服务器上传数据,然后第一台会调用第二台,第二台就会调用第三台,这样就建立好了整个pipline,并且逐级返回给客户端。
第四步:客户端开始向第一台服务器上传第一个block,以packet为单位(默认64k),第一台服务器收到第一个packet就会传给第二个服务器,第二个服务器再传给第三台服务器;第一台服务器每上传一个packet就会放入一个应答队列等待应答。
第五步:数据就这样一个一个packet的在pipline上传递,在pipline的反方向上逐个发送这ack(应答),最终第一台服务器会将piplineack传递给客户端。
第六步:当一个block传递完成后,客户端会再次向NN申请上传第二个block。直到上传完所有的block,关闭连接,释放资源。
HDFS写入流程
最新推荐文章于 2024-04-13 10:28:37 发布