集群的namenode故障恢复

      secondaryNamenode对namenode当中的fsimage和edits进行合并时,每次都会先将namenode的fsimage与edits文件拷贝一份过来,所以fsimage与edits文件在secondarNamendoe当中也会保存有一份,如果namenode的fsimage与edits文件损坏,那么我们可以将secondaryNamenode当中的fsimage与edits拷贝过去给namenode继续使用,只不过有可能会丢失一部分数据。这里涉及到几个配置选项

namenode保存fsimage的配置路径

        <property>

                <name>dfs.namenode.name.dir</name>

                <value>file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/namenodeDatas</value>

        </property>

 

namenode保存edits文件的配置路径

       <property>

                <name>dfs.namenode.edits.dir</name>

                <value>file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/nn/edits</value>

        </property>

 

secondaryNamenode保存fsimage文件的配置路径

        <property>

                <name>dfs.namenode.checkpoint.dir</name>

                <value>file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/snn/name</value>

        </property>

 

 

secondaryNamenode保存edits文件的配置路径

        <property>

                <name>dfs.namenode.checkpoint.edits.dir</name>

                <value>file:///export/servers/Hadoop-2.6.0-cdh5.14.0/HadoopDatas/dfs/nn/snn/edits</value>

        </property>

 

故障恢复步骤

第一步:杀死namenode进程

使用jps查看namenode进程号,然后直接使用kill  -9  进程号杀死namenode进程

[root@node01 servers]# jps

127156 QuorumPeerMain

127785 ResourceManager

17688 NameNode

127544 SecondaryNameNode

127418 DataNode

128365 JobHistoryServer

19036 Jps

127886 NodeManager

[root@node01 servers]# kill -9 17688

 

第二步:删除namenode的fsimage与edits文件

namenode所在机器执行以下命令,删除fsimage与edits文件

删除fsimage与edits文件

rm -rf /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas/*

rm -rf /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits/*

 

 

第三步:拷贝secondaryNamenode的fsimage与edits文件到namenode的fsimage与edits文件夹下面去

将secondaryNameNode所在机器的fsimage与edits文件拷贝到namenode所在的fsimage与edits文件夹下面去

由于我的secondaryNameNode与namenode安装在同一台机器,都在node01上面,node01执行以下命令进行拷贝

 

cp -r /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/snn/name/* /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/namenodeDatas/

cp -r /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/snn/edits/* /export/servers/hadoop-2.6.0-cdh5.14.0/hadoopDatas/dfs/nn/edits

 

第四步:启动namenode

node01服务器执行以下命令启动namenode

cd hadoop-2.6.0-cdh5.14.0/

sbin/hadoop-daemon.sh start namenode

 

第五步:浏览器页面正常访问

http://当前节点的ip:50070/explorer.html#/

猜你喜欢

转载自blog.csdn.net/lxpqxl/article/details/102923496