hdfs文件上传流程

1 文件上传

中等描述:

  1. 客户端向namenode通信,请求上传文件,namenode检查目标文件是否已存在,父目录是否存在,该客户端是否有上传权限
  2. namenode返回是否可以上传。
  3. 客户端会先对文件进行逻辑切块,比如一个blok块128m,文件有300m就会被切分成3个块,一个128M、一个128M、一个44M请求第一个 block该传输到哪些datanode服务器上。
  4. namenode返回datanode列表
  5. 为上传文件做准备。构建pipline,将同一个块的所有存储节点构成一个数据流通道。
  6. 开始真正上传文件。上传文件过程中,边上传边切块。以packet(64kb)为单位上传,先上传到第一个datenode01的缓存中,缓存中每当接收一个packet就向本地磁盘写入,并传递给下一个结点。当第一个块上传完成后关闭通道。
  7. 开始上传第二个块,所有块上传完成后namenode向客户端返回结果。
  8. 所有块上传完成后,客户端告知namenode数据上传成功。
  9. namenode更新元数据

1.1 文档

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 课程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 文件下载

  1. 客户端向namenode发送文件下载请求。
  2. NameNode在自己的元数据库中查询,查询到返回数据的块和存储节点。
    blk_1:hadoop01 hadoop02 hadoop04
    blk_2:hadoop01 hadoop03 hadoop04
    如果查询不到则会报错
    3.客户端拿到数据块的存储节点,先下载第一个块
    下载的时候也是就近原则
  3. 第一个块下载完成后生成一个crc文件,和上传时候的.meta文件进行文件完整度校验(校验的是起始偏移量和末尾偏移量中间的内容)。如果校验通过,则认为第一个块下载成功
  4. 重复3、4
  5. 所有块都下载成功后,向namenode发送响应。

2.1 视频课程

在这里插入图片描述
在这里插入图片描述

2.2 文档

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值