zoukankan      html  css  js  c++  java
  • hdfs一直处于safemode模式

    目前来看,导致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)使用第二种方法的结果如下所示;

  • 相关阅读:
    linux基础_用户和组的三个文件
    python_文件
    linux基础_用户组的管理
    mysql基础_数据类型
    mysql基础_操作数据库、表、记录
    linux基础_用户管理
    python_集合
    linux基础_关机重启注销
    docker创建私有仓库
    制作docker镜像
  • 原文地址:https://www.cnblogs.com/felixzh/p/10690714.html
Copyright © 2011-2022 走看看