虚拟机集群:CentOs7.2版本 Hadoop 3.1.2
问题1: Name node is in safe mode. Hadoop集群的name node一直处于安全状态,用于检测数据是否丢失;
出现的原因:意外断电或没有关闭集群就关闭电脑,说明Hadoop的NameNode处在安全模式下。那什么是Hadoop的安全模式呢?在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。现在就清楚了,那现在要解决这个问题,我想让Hadoop不处在safe mode 模式下,能不能不用等,直接解决呢?答案是可以的,首先介绍4种状态
(1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态)
(2)bin/hdfs dfsadmin -safemode enter (功能描述:进入安全模式状态)
(3)bin/hdfs dfsadmin -safemode leave (功能描述:离开安全模式状态)
(4)bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态)
2.解决步骤:
(1)查看当前的hdfs的blocks的状态,是否有损坏的blocks
hdfs fsck -blocks
(2)手动关掉安全模式
hadoop dfsadmin -safemode leave
(3)删除损坏的blocks
hdfs fsck / -delete
(4)再次查看blocks的状态
hdfs fsck -blocks
若出现以下界面则基本成功,不排除因个人机子不同解决方法不同