3.HDFS读写操作原理以及namenode与工作secondarynamenode原理

1.HDFS写入数据工作原理

HDFS写操作
上传hunter.txt文件(bytebuffer是缓冲流,高效)
1.通过客户端向namenode请求上传
2.namenode进行应答,可以上传
3.请求上传第一个块(0-128M),请求返回datanode
4.namenode返回datanode列表
5.客户端请求与datanode建立block传输通道
6.datanode应答,NameNode分配的多个DataNode构成pipeline管道
7.客户端分切数据块,传输数据,客户端向输出流对象中写数据。client每向第一个DataNode写入一个packet,这个packet便会直接在pipeline里传给第二个、第三个…DataNode,数据通过chunk 来进行效验

2.HDFS读数据工作原理

在这里插入图片描述
1.客户端请求下载文件
2.namenode返回文件的元数据
3.请求数据块
4.数据传输

3.Namenode工作机制(secondary namonode辅助)

在这里插入图片描述
checkpoint:检查点,每次进行checkpoint的时候,就是进行fsimage的更新拷贝的工作过程,可以定时进行,可以让edits日志满了进行
fsimage:文件系统映射文件,也是元数据的镜像文件(磁盘中),存储某段时间namenode内存元数据信息。
edits log:操作日志文件。
1.启动集群,namenode加载日志和镜像文件.
2.进行数据操作。
3.滚动日志。

secondary namenode 通知namenode提交edits,此时的namenode将新的数据操作写入edits.new中
4.拷贝edits
5.将拷贝过来的edits加载进内存,合并
6.生成一个fsimage.chkpoint镜像文件
7.将fsimage.chkpoint拷贝到namenode当中
8.将fsimage.chkpoint名改为fsimage
9.将fsimage拷贝到secondarynamenode当中
10.加载内存

secondarynamenode拷贝的是namenode的结构,进行了备份。
SecondaryNameNode一般要在另一台机器上运行,因为它需要占用大量的CPU时间与namenode相同容量的内存才可以进行合并操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值