目前来看,导致hdfs一直处于safemode模式最直接的原因是已成功复制的块的比例没有达到默认值,块的损坏也会造成一直处于安全模式。

1)文件系统中有损坏的文件,使用fsck命令来查看

hadoop fsck /

以上是查看hdfs的根目录下的所有文件健康状况,如果有损坏的文件,就会提示:

 The filesystem under path '/' is CORRUPT(损坏)

接下来就是排错,查看究竟是哪个目录下有损坏文件,使用fsck遍历检查根目录下的每个子目录,查看时候有损坏文件,例如查看user目录:

hadoop fsck /user

找到损坏的文件,删除掉即可,最终在使用fsck检查hdfs文件系统已完好:

但是看到Missing replicas一栏中,有321个副本丢失了,比如某个文件的复制因子是3,结果只有2个,那么表示有1个副本丢失了,所有的文件丢失副本数之后就是Missing replicas。同样使用fsck遍历所有目录,查看究竟是那些文件的冗余数量不够。

首先查看/user/Englishinput,命令如下:

hadoop fsck /user/EnglishInput -files -blocks -locations

仅仅这一个目录就有265个备份丢失,删除此目录。

Under开头的记录就是异常块的情况,数字.开头的就是正常的块情况。

2)以下就是hdfs正常情况的形式:

红色的箭头表示对一个文件的检查情况:1 block(s)表示这个文件只由一个块组成,ok表示文件处于正常状态。

蓝色箭头指示了“Average block replication”块平均复制因子2.8,因为其中有一个文件传到集群上是系统配置的复制因子是1,因此其复制因子是1,才导致平均复制因子是1.

3)修改配置文件中的复制因子值,并不会改变修改之前集群中文件的复制因子,必须重启hadoop才能使其生效。也可以使用命令行的方式修改,不用重新启动即可生效,不过依然不会修改之前文件的复制因子。

4)使用第二种方法的结果如下所示;

hdfs一直处于safemode模式的更多相关文章

  1. Apache Hadoop 2.9.2 的HDFS High Available模式部署

    Apache Hadoop 2.9.2 的HDFS High Available 模式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们知道,当NameNode进程挂掉后,可 ...

  2. Hadoop 系列文章(二) Hadoop配置部署启动HDFS及本地模式运行MapReduce

    接着上一篇文章,继续我们 hadoop 的入门案例. 1. 修改 core-site.xml 文件 [bamboo@hadoop-senior hadoop-2.5.0]$ vim etc/hadoo ...

  3. 启动HDFS之后一直处于安全模式org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.

    一.现象 三台机器 crxy99,crxy98,crxy97(crxy99是NameNode+DataNode,crxy98和crxy97是DataNode) 按正常命令启动HDFS之后,HDFS一直 ...

  4. HDFS Safemode问题

    处于safemode的集群是无法接收不论什么写操作的,包含创建文件夹.删除文件.改动文件.上传文件等等. 关于safemode,在http://www.iteblog.com/archives/977 ...

  5. How to fix corrupt HDFS FIles

    1 问题描述 HDFS在机器断电或意外崩溃的情况下,有可能出现正在写的数据(例如保存在DataNode内存的数据等)丢失的问题.再次重启HDFS后,发现hdfs无法启动,查看日志后发现,一直处于安全模 ...

  6. HDFS退出安全模式

    运行Hadoop程序时,有时候会报以下错误: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Na ...

  7. HDFS安全模式

    用户可以通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下: enter - 进入安全模式 leave - 强制NameNode离开安全模式 get - 返 ...

  8. HDFS概述(1)————HDFS架构

    概述 Hadoop分布式文件系统(HDFS)是一种分布式文件系统,用于在普通商用硬件上运行.它与现有的分布式文件系统有许多相似之处.然而,与其他分布式文件系统的区别很大.HDFS具有高度的容错能力,旨 ...

  9. hdfs常用的命令

    查看hadoop的状态hdfs haadmin -getServiceState nn1切换主从 hdfs haadmin -failover nn1 nn2查看hdfs是否安全模式hdfs dfsa ...

随机推荐

  1. PHP入门小练习

    1.编写字符串检查函数,判断一个字符串是否为有效电话号码.要求:手机号码的长度为11位的数字,固定电话为开头三或四个数字后跟一个短横线后接8位数字. <? function isTel($tel ...

  2. java通过反射获取字段的类型

    import java.lang.reflect.Field;  //这是需要引入的包 Field[] f = 类名.class.getDeclaredFields(); //获取该类的字段for(F ...

  3. Java JWT: JSON Web Token

    Java JWT: JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand libr ...

  4. 关于 行高lineheight的概念及与Vertical-align、内容框、基线等的关系

    1.关于行高 行高:顾名思意指一行文字的高度.具体来说是指两行文字间基线之间的距离,他也是底线和顶线之间距离   (1)内容区

  5. Inception体验之安装

    Inception介绍 MySQL Inception是数据库管理员的工具.它允许DBA构建好的SQL语句,在只读数据集上测试它们,并最终针对生产数据库运行这些SQL语句,并且能够在SQL语句出于某种 ...

  6. Python bytes数据类型

    Python3 中文本是Unicode, 由str类型表示. 二进制数据由bytes类型表示(如视频文件). Python3 不会以任意隐式的方式 滥用str和bytes, 所以不能拼接字符串和字节包 ...

  7. 数据保存策略(Retention Policies)

    数据保存策略(Retention Policies) InfluxDB没有提供直接删除Points的方法,但是它提供了Retention Policies.主要用于指定数据的保留时间:当数据超过了指定 ...

  8. BZOJ_1826_[JSOI2010]缓存交换 _线段树+贪心

    BZOJ_1826_[JSOI2010]缓存交换 _线段树+贪心 Description 在计算机中,CPU只能和高速缓存Cache直接交换数据.当所需的内存单元不在Cache中时,则需要从主存里把数 ...

  9. SM干货篇:你应该具备的提问技巧!

    在成为Scrum Master(SM)之前,我曾担任过许多团队的技术负责人.工作内容之一就是做决定,而且我认为自己做得挺好:坚定果断是我性格的一部分. 然而,当我成为Scrum Master之后,这样 ...

  10. Python3 ——斐波那契数列(经典)

    刚刚学习了 斐波那契数列,整理一下思路,写个博文给未来的学弟学妹参考一下,希望能够帮助到他们 永远爱你们的 ----新宝宝 经历过简单的学习之后,写出一个比较简单的代码,斐波那契数列:具体程序如下: ...