HDFS重点(读写流程)

一、HDFS的组成

  • NameNode 

       处理读写请求

  • SecondNamenode

       帮助namenode合并元数据

  • Datanode

       存储真正的数据

二、HDFS的读写流程

HDFS的读流程

1、客户端通过DistributeFileSystem向NameNode请求上传文件
2、NameNode查看文件是否存在,倘若没则向客户端响应
3、客户端请求上传第一个block,并请求返回这三个dataNode节点
4、客户端通过FSDatainputStreamdn1发送请求,dn1调用dn2,dn2调用dn3,直到通道建成
5、dn1、dn2、dn3逐级应答客户端
6、客户端向dn1发送第一个packet,dn1-->dn2-->dn3依次传递
7、根据文件大小判断是否继续上传block

 

HDFS的写流程

1、客户端向NameNode发出写文件请求
2、检查是否已存在文件、检查权限。若通过检查,直接将操作写入EditLog,并返回输出流对象
3、client端按128MB的块切分文件
4、client将NameNode返回的分配的可写的DataNode列表和Data数据一同发送最近的第一个DataNode节点,多个节点形成通道
5、client每向第一个DataNode写入一个packet,这个packet便会直接在pipeline里传给第二个、第三个…DataNode
6、每个DataNode写完一个块后,会返回确认信息
7、写完数据,关闭输输出流发送完成信号给NameNode
8、(注:发送完成信号的时机取决于集群是强一致性还是最终一致性,强一致性则需要所有DataNode写完后才向NameNode汇报。最终一致性则其中任意一个DataNode写完后就能单独向NameNode汇报,HDFS一般情况下都是强调强一致性

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值