HDFS两大核心 文件的读和写

本文详细介绍了HDFS的文件上传与下载过程,包括客户端如何向NameNode发起请求、NameNode的权限验证、文件切块及上传流程、构建管道进行副本节点的数据传输,以及下载时NameNode的元数据查询和客户端按就近原则从副本节点下载数据块的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HDFS的文件上传 写

①使用HDFS提供的客户端Client向远程的NameNode发起rpc请求。
②NameNode接收到客户端的请求后会检查要创建的文件是否存在,创建者是否有权进行操作,成功则有权操作,否则将会向客户端报错。
③客户端真正的提交上传文件的请求,请求中包含一个重要的信息(就是文件的大小,计算文件需要切块的个数)。
④NameNode开始计算上传文件的个数(文件总长度、128M=结果进行取整函数),然后获取副本个数,返回给客户端对应的节点。
⑤客户端开始上传文件(客户端先对文件进行逻辑切分,为物理切分做准备)。
⑥上传第一个数据块。
⑦客户端构建第一个数据块上传通道,同时客户端开启一个守护进程等待上传的结果反馈。构建pipline的过程为:客户端---->第一个副本节点---->第二个副本节点---->第三个副本节点 一次向前反馈结果。
⑧pipline构建完成开始第一个数据块的上传,客户端边上传边切分,文件上传的时候以packet为单位(64kb)
⑨客户端将文件以packet为单位先传给第一个副本节点----->第二个副本节点。。。。。
⑩第一个上传完成后,开始第二个,重复上述上传步骤。
⑪所有文件上传完成后,整个文件就上传成功了,向客户端反馈结果,修改NameNode的元数据。

HDFS的文件下载 读

①客户端向NameNode发送文件下载的请求
②NameNode查询元数据进行校验,不存在或者报错的则进行反馈,存在则会返回对应的文件的blocked以及每一个blockid,每一个副本的存储节点。
③客户端开始下载第一个数据块与对应的副本节点,就近原则下载。
④第一个数据快下载完成后进行校验,校验通过则下载成功。
⑤客户端到对应的第二个数据块节点下载第二个数据块,重复步骤3,4,第二个数据块的下载内容自动追加到本地的第一个数据块的末尾。
⑥所有数据快下载完成后,返回给客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值