HDFS两大核心 文件的读和写

HDFS的文件上传 写

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

HDFS的文件下载 读

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值