checkpoint机制与hdfs的读写文件

刚复习完hadoop的相关知识,把它拿来做一个总结,方便日后查看也希望能解决大家的疑惑。

  1. checkpoint机制
    首先我们知道hadoop中存在namenode和datanode,datanode主要是用来存放数据而namenode的责任主要有三个:管理元数据,维护目录树,相应客户请求。

在这里插入图片描述
元数据的格式为路径,block的副本数,block_name,以及存放block的datanode

那么我们应该将元数据存放在namenode的哪个地方呢?如果是存放在内存中,那么会很消耗内存,而且如果重启,就会丢失数据,显然是不现实的。但是如果放在磁盘里,每次对元数据进行访问操作的时候又会非常麻烦,效率非常低。所以在内存中存放的同时需要在磁盘中有备份,我们称为fsimage。但是如果我们更新元数据的时候,如果同时更新磁盘中的fsimage,那么效率很低,所以我们将更改的信息写入日志,edits.log(只进行追加操作)。但是如果长时间的追加会让edits.log变大,从而效率变低。所以我们专门启用一个secondary namenode来进行edits.log和fsimage的合并操作

在这里插入图片描述
总体流程:
a.更改元数据
b.将更改操作写入日志文件
c.namenode在内存中对元数据进行更改操作
d.secondarynamenode定期访问namenode是否需要checkpoint,当checkpoint定时时间到了或者edits中的数据满了,secondary namenode请求执行checkpoint操作
e.namenode滚动正在写的edits,并生成新的空的edits.inprogress_002,滚动的目的是给edits打个标记,以后所有的更新操作都写入edits.inporgress_002中
f.edits和fsimage复制到secondary namenode中,secondary namenode会将他们加载到内存中合并,并生成镜像文件fsimage.chkpoint
g.将fsimage.chkpoint复制到namenode并重命名为fsimage并替代namenode中原来的fsimage

  1. 写入hdfs流程
    以下两个直接放图吧,相信聪明的大家一定能看的明白。
    在这里插入图片描述
  2. 读取hdfs中的数据
    在这里插入图片描述
    从hdfs中读写数据的流程非常清楚了,来源于一个网客视频。如果以上阐述有不对的地方,还希望前辈们指正。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值