解释Hadoop中2NN工作机制?

2NN主要操作:大致流程
     a.将NN机器对应磁盘上的fsimage 和 Edits文件拉取到2NN的机器中
     b.在2NN的机器中将fsimage + Edits都读取到内存中进行合并,然后生成新的fsimage 
         在合并时,edits会重新生成一个新的,用来记录在合并时的操作
     c.再推送到NN机器中的磁盘上,NN中旧的fsimage会保留,新的fsimage对应的是正在使用 


checkpoint时间设置:(触发条件)
     a.2NN每隔1小时就发送请求给NN是否需要进行checkpoint
     [hdfs-default.xml]        --具体设置
        <property>
          <name>dfs.namenode.checkpoint.period</name>
          <value>3600</value>
        </property>
     b.Edites文件记录操作数达到100万,进行checkpoint操作
         --2nn并不知道客户端操作了多少次nn,所以设置1分钟询问nn一次
         【hdfs-site.xml】添加如下配置:
         <property>
          <name>dfs.namenode.checkpoint.txns</name>
          <value>1000000</value>
          <description>操作动作次数</description>
        </property>
        <property>
          <name>dfs.namenode.checkpoint.check.period</name>
          <value>60</value>
          <description> 1分钟检查一次操作次数</description>
        </property >

NN故障处理 

方式一:将secondaryNameNode中的数据cp到NameNode存储数据的目录
        --NN存储的目录(/opt/module/hadoop-3.1.3/data/name/current)
具体操作演示:
    1、杀掉NameNode进程
        jps 查看NN运行的进程号
        kill -9 NN进程号
    2、删除name下所有内容
        rm -rf /opt/module/hadoop-3.1.3/data/name/*
    3、拷贝2NN服务器节点name下的所有内容到NN中的name目录下
        scp -r atguigu@swk5:/opt/module/hadoop-3.1.3/data/namesecondary/* ./name/

方式二:使用-importCheckpoint选项启动NameNode守护进程,从而将SecondaryNameNode中数据拷贝到NameNode目录中.
具体操作演示:
    1、修改hdfs-site.xml
        <property>
          <name>dfs.namenode.checkpoint.period</name>
          <value>120</value>
        </property>
        <property>
          <name>dfs.namenode.name.dir</name>
          <value>/opt/module/hadoop-3.1.3/data/name</value>
        </property>
    2、kill -9 NameNode进程
    3、删除NameNode存储的数据(/opt/module/hadoop-3.1.3/data/name)
    4、如果2NN不和NN在一个主机节点上,需要将2NN存储数据的目录拷贝到NN存储数据的平级目录,并删除in_use.lock文件
        scp -r atguigu@swk5:/opt/module/hadoop-3.1.3/data/namesecondary ./
        rm -rf in_use.lock
        pwd   --->   /opt/module/hadoop-3.1.3/data
    5、导入检查点数据(等待一会ctrl+c结束掉)
        bin/hdfs namenode -importCheckpoint
    6、启动NameNode
        hdfs --daemon start namenode

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值