HDFS文件的写入与读取

首先我们要知道HDFS 4个组成部分
1:client(客户端)
2:Namenode(主节点)
3:Datanode(从节点)
4:secondaynode(辅助节点)

1:client(客户端)作用
a.文件切片
b.Namenode交互:获取文件位置信息
c.Datanode交互:读取写入信息
d.提供命令,管理访问HDFS

2:Namenode(主节点)
a.管理HDFS 名称控件
b.管理切片映射信息
c.配置副本策略(即存几个副本)
d.处理客户端读写请求

3:Datanode(从节点)
a.储存实际数据block(已经切好的文件)
b.执行数据块读写

4:secondaynode(辅助节点)
辅助Namenode
(只能当作辅助 不能当作Namenode备机 即当ND挂掉 SND也会挂)

写入

1、客户端请求上传文件file
2、ND检测上传权限
3、ND回复是否可以上传
4、客户端收到ND确认回复讲文件block(切分)
4.1切好后向ND发出请求上传B1
5、NN根据集群中的DN上的block信息和机架感知 选出可以上传的n个主机(这里的n个主机根据集群电脑数量来定)
6、NN向客户端返回DN列表(例:dn1,dn2,dn3)
7、客户端和DN之间建立pepeline(传输管道)
7.1、dn1、dn2、dn3之间先后建立pipeline
8、客户端向DN传递数据(传递单位“package”【默认大小64k】)
9、将package选村(dn1、dn2、dn3都会先后进行缓存)
10、按照dn3 =>dn2=>dn3=>客户端发送应答

至此 写入操作结束
(中途有出现appmaster和resourcesmanager可以理解为分别是DN和NN操作的管理者)

读取

1、客户端向ND请求下载file文件
2、权限检查 文件block列表检查 选出每一个切片对应的主机列表
3、返回blick主机列表
4、和每一个block所在的主机建立pipeline
5、开始数据读取(可以并行)
6、姜切片进行合并成完整文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值