问题报错

        问题忘记记录了,口头描述一下吧,事情是这样的,今天启动hadoop集群的时候,突然namenode无法启动了,之前都是可以正常启动的,我回忆了一下,应该是我最后一次不正常的操作导致的后果,hadoop集群启动的时候,直接关闭了虚拟机,因此上网查找解决办法,但是大多数都是要格式化才能解决,这样的话,数据就全部丢失了。

如何解决

        既然问题已经找到了,最后一次的启动造成的,那么我们可以回退hadoop的版本,回到更早之前的版本,这样的话,丢失的数据就不会太多

解决办法

1、利用SecondaryName中的备份数据,配置路径可以查看自己的配置文件

<!--SecondaryName备份NameNode中的edits文件的路径-->
        <property>
                <name>dfs.namenode.checkpoint.edits.dir</name>
                <value>file:///export/servers/hadoop-3.1.2/datas/dfs/SecondryNameNode/edits</value>
        </property>
        <!--SecondaryNameNode用来备份checkpoint image文件的路径 -->
        <property>
                <name>dfs.namenode.checkpoint.dir</name>
                <value>file:///export/servers/hadoop-3.1.2/datas/dfs/SecondryNameNode/name</value>
        </property>

2、将namenode中的edit和image的文件全部删除,路径查看自己的配置文件

<!--NameNode存储数据的路径-->
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:///export/servers/hadoop-3.1.2/datas/namenode/namenodedatas</value>
        </property>
<!--NameNode中的edits的操作记录存储路径,这个很重要,要是丢失了,集群无法启动-->
        <property>
                <name>dfs.namenode.edits.dir</name>
                <value>file:///export/servers/hadoop-3.1.2/datas/dfs/NameNode/edits</value>
        </property>

3、注意:以上的文件都是在current目录下的,仔细找找,别删错了,然后将SecondaryName的中的文件备份到复制到namenode,记得只复制到没有问题的版本就行

4、最后关闭hadoop,启动hadoop即可

stop-dfs.sh
start-dfs.sh
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐