HDFS的读写操作流程

HDFS简介
HDFS的特点:

  1. 特点:
    a. 能运行在廉价的机器上
    b. 流式数据访问
    c.处理应对大规模数据集,可以进行批量处理
    d.一次写入,多次读取
  2. 缺点:
    a. 不支持低延迟数据访问
    b.不能适应小文件的存储
    c.不支持并发写入
    d.不能随机修改,仅支持追加修改

写操作流程:
在这里插入图片描述
1.HDFS的client客户端调用Creat()方法创建写操作输出流
2.向namenode发起写请求的询问,Namenode查看写入文件是否存在,权限信息, 同时将可写入信息的DataNode节点等信息发送给Client端
3. Client端把要写的数据进行切分操作(按照128M切分)向最近的DataNode节点进行写操作的传输.他们之间通过write packet进行传输(默认传输单位,64KB)
4. DataNode每接收完一个packet以后会对第二个,第三个DataNode进行传输
5. 当每个DataNode完成写数据后会返回ack packet
6. Client端完成写操作也关闭输出流
7. Datanode会将写操作成功信息发送给namenode
这楼里需要注意的是: 当前集群是采用强一致性还是最终一致性,
强一致性: 要求所有datanode完成写操作后,才能向namenode进行汇报
最终一致性:随意哪一个datanode完成写操作都会向namenode汇报

读操作流程
在这里插入图片描述
1.客户端Client向Namenode发送读数据请求, 获取要读取的元数据文件地址信息,block所在的datanode位置等信息
2.client同最近的datanode节点建立输入流
3.客户端与datanode之间进行数据传输,以packet为单位
4.关闭输入流

其中packet是每个chunk的检验和, 同时一个个packet也是block的校验和, chunk–>packet–>block

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值