HDFS的读写流程

文件写入

HDFS的写数据流程
HDFS的写数据流程

(1) 客户端通过Distribution FileSystem模块向NameNode请求上传文 件.NameNode检查目录树是否能够创建文件,检查目标文件是否存在
(2)NameNode返回是否可以上传文件.
(3)客户端请求第一个Block上传到哪个DataNode服务器上.
(4)NameNode返回上传到DataNode1,DataNode2,Datanode3这三个服务器节点.
(5)客户端通过FSDataOutStream模块向DataNode请求建立Block上传通道,DateNode1接收到请求是会继续向DataNode2发起建立传输通道的请求,DataNode2向DataNode3发起建立传输通道的请求.
(6)DataNode1,DataNode2,DataNode3逐级应答客户端.
(7)客户端开始向DataNode1上传Block(先从磁盘读取数据放一个到本地内存缓存),以Packet为单位,DataNode1收到一个Packet就会传输给DataNode2,DataNode2传输给DataNode3,DataNode1没传输一个Packet就会放入一个应答队列等待应答.
(8)当第一个Block传输完成之后就可以再次向NameNode发起请求传输第二个Block到DataNode服务器.

HDFS的读数据流程

HDFS的读数据流程
(1)客户端通过Distribution向NameNode发起请求下载文件到本地,NameNode检查文件是否存在,通过查询元数据找到文件块的DataNode地址.
(2)选取一台DataNode服务器(就近原则,然后随机),请求读取数据
(3)DataNode开始传输数据给客户端(以Packet为单位来校验,从磁盘中读取数据输入流)
(4)客户端以Packet为单位请求接受数据,先在本地缓存,然后写入数据.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值