HDFS读写流程[上传下载流程和原理

1.客户端请求namenode上传数据信息(包括数据大小,存储位置)
2.namenode对数据进行校验(包括数据的存储容量,元数据信息)
3.namenode对处理的信息返回到客户端,
4.客户端向namenode请求上传第一块数据
5.客户端与三台机器建立连接
6.namenode返回允许上传第一块数据块
7.客户端对数据块进行读取操作,并且本地分布式输出流边进行读取,边输出到第一台机器上,并且以打包的形式

8.第一台机器,边进行写的操作,边输出到第二台机器上,
9.第二台机器边把数据写入到本地,边把数据输出到啊第三台机器
10.当集群中有一台机器存储数据成功,那么本次上传数据块算是成功
在这里插入图片描述

下载文件流程
1.客户端向namenode请求下载数据信息
2.namenode对信息进行处理,并返回对应的虚拟文件目录
3.客户端向datanode请求下载离自己最近的机器的数据块
4.读取第一台第一台机器的第一块数据所在的位置
5.下载第一块数据
6.读取下载的第二块文件并与第一块数据块拼接在一起
在这里插入图片描述
3.hdfs数据存储的位置特征
3.1 每一个文件在集群中默认以128M存储,
3.2HDFS有三个副本,保证数据的安全
3.3 HDFS不能存储大量的小文件,因为每个文件的存储都在namenide都有记录,二namenode记录元数据的内存是有限的,大量的数据记录,会占用namenode有限的内存,
3.4 HDFS一次存储,多次读写
3.5 HDFS读取文件的效率不高,因为数据存储在不同的节点上,每次读取数据的时候,都要请求nn,和dn ,使得读取的效率不高

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值