【hadoop】NameNode和SceondaryNameNode的工作机制

本文详细介绍了Hadoop中NameNode和SecondaryNameNode的工作机制,包括它们为何存在、工作流程、Fsimage和Edits的作用,以及CheckPoint时间设置和安全模式。SecondaryNameNode并非NameNode的热备,而是协助进行元数据合并,以防止Edits文件过大影响系统性能。
摘要由CSDN通过智能技术生成

一、 为什么会存在这样的工作机制?

1.NameNode中的元数据是存储在哪里的?

(1)若是存储在NN节点的磁盘中,因为经常需要进行随机访问,或者是不断的被访问,还有要响应客户请求,效率必然很低,所以元数据需要存放在内存中,但如果存在内存中。一旦遇到突发状况,比如断电,元数据信息丢失,会造成集群瘫痪。因此产生在磁盘中备份元数据的FsImage。

(2)可是又有新的问题,就是在NN做对客户的访问和响应客户的请求,同时还要更新fsimage,就会导致效率极其低,但是不更新,又会回到原来的断电数据丢失的情况。因此,引入Edits文件(只进行追加操作,效率很高)。每当元数据有更新或者添加元数据时,修改内存中的元数据并追加到Edits中。,这样一来,一旦NN节点突然挂掉,可以通过fsimage和edit的合并,合成元数据。

(3)但是,如果长时间添加数据道edits中,会导致该文件数据过于庞大,效率就会降低,而且断电后,恢复元数据需要时间就会很长很长(因为合并的过程时fsimage通过edits的操作数进行一步一步恢复,后面会讲),因此需要定期进行fsimage和edits的合并,而且这个操作不能交给NN节点完成,不然效率会降低。因此,引入一个新的节点SecondaryNamenode,专门用于FsImage和Edits的合并。

二、NameNode和SceondaryNameNode的工作机制图解析

在这里插入图片描述

  1. 第一阶段:NameNode启动

    1. 在对NN第一次启动服务后,会创建fsimage文件和edits文件(做初始化-format的时候edits文件是不会生成,并不会初始化创建,只会创建一个fsimage),如果不是第一次启动,则会加载NN节点中存在的fsimage和edits进行合并操作(CheckPoint)。
    2. 客户端对元数据进行增删改的请求。
    3. NN中的edits记录操作数,并在2NN的请求是否需要CheckPoint后更新滚动日志
    4. NN在内存中对数据进行增删改
  2. 第二阶段:Secondary NameNode工作

    1. 第一次启动的时候2NN的时候,节点内只有一个在NN初始化后第一次启动服务会在NN中拷贝一个空fsimage&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值