关于namenode、datanode和secondarynamenode的互动过程

元数据是保存在namenode中的,这些元数据包括文件名、目录名,文件目录从属关系、文件大小,文件与块对应关系,块所对应的节点等;namenode会将这些元数据信息保存在硬盘上,对应的名字是fsimage_txid(即类似这种:fsimage_000000000000003210),以备下次启动时,可以及时获取到整个hdfs文件系统的重要信息;除了这个文件,还有一个文件edits(或者叫editlog,对应的名字格式:edit_0000000000000xxxx-000000000000xxx+1,由于此文件存储hdfs的所有动作,存储数据量较大,因此通常会分成多个文件存储)文件,这个文件记录了namenode(以及客户端)和datanode交互的所有动作,如果说fsimage文件是地理纬度,则edits文件是时间维度,也就是说,fsimage文件+edits文件=hdfs在某一时刻的快照。

当hdfs重新启动时,必须获得hdfs关闭前的状态,而这个状态自然是记录在fsimage和edits文件中的,因此需要将fsimage和edits中保存的信息加载入namenode的内存,其方式是先将fsimage加载,然后逐条执行edits中的指令,这样看好像解决了重启丢失数据的问题,但仍然有其它问题,hdfs集群通常是长期不关机的,这回造成edits文件无限变大,如果经过了很长时间后,需要重启一次,再像之前那样加载fsimage特别是edits文件,会出现启动时间过长的问题.....三五个小时,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值