HDFS 写流程和读流程,超详细!!!

HDFS 写流程

写流程(上传文件流程)中的三个角色
Client(客户端)
用户通过客户端与 HDFS 进行交互

NameNode
接受客户端的请求
指定一组用于存储数据的 DataNode

DataNode
存储数据


1. Client 向 NameNode 申请上传文件

2. NameNode 判断是否允许上传文件
文件是否已存在
用于存储文件的目录是否存在

3. NameNode 返回允许上传

4. Client 对文件按照 blocksize 进行切片
block size 默认是 128M
5. Client 向 NameNode 申请上传 block1

6. NameNode 挑选 replication 个 DataNode
replication 默认值是 3
尽量避免挑选存储太满或者工作太忙的 DataNode
多个 DataNode 的位置尽可能分散

7. 返回挑选的 DataNode 列表
dn1, dn2, dn6
8. Client 发送 block1 给 DataNode1
    DataNode1 发送 block1 给 DataNode2
    DataNode2 发送 block1 给 DataNode6

9. DataNode6 回复 DataNode2 接收完毕
    DataNode2 回复 DataNode1接收完毕
    DataNode1 回复 Client 接收完毕

10. DataNod1,DataNod2,DataNode6 
      向 NameNode 汇报接收 block1 完毕

11. Client 继续向 NameNode 申请上传下一个 block

HDFS 读流程

读流程(下载文件流程)中的三个角色
Client(客户端)
用户通过客户端与 HDFS 进行交互

NameNode
接受客户端的请求
指定一组用于下载数据的 DataNode

DataNode
下载数据

1. Client 向 NameNode 申请下载文件

2. NameNode 查询文件的元数据,
    为每个 block 挑选一个用于下载的 DataNode

3. 返回挑选的 DataNode 列表
block1: DataNode1
block2: DataNode2


4. Client 向 DataNode1 申请下载 block1

5. DataNode1 发送 block1 给 Client

6. Client 依次从 DataNode 下载所有 block

7. Client 合并所有 block 为文件

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琳小小小

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值