NameNode在启动的时候 首先进入安全模式,若是datanode丢失的block达到必定的比例(由hdfs-site.xml文件中dfs.safemode.threshold.pct决定,默认0.999f),则系统会一直处于安全模式状态即只读状态 ; 不然没有其余状况影响,通常状况下,系统会自动离开安全模式。
dfs.safemode.threshold.pct 表示HDFS启动的时候,若是DataNode上报的 block个数0.999倍才能够离开安全模式,不然一直是这种只读状态。若是设为1则hdfs永远是处于SafeMode。
node
一般两种状况能够离开这处安全模式:安全
一、修改 dfs.safemode.threshold.pct为一个比较小的值,缺省值是0.999
二、hadoop dfsadmin -safemode leave 命令强制离开
数据结构
用户可使用命令行(hdfs dfsadmin -safemode value)作以下的操做:ide
[plain] view plain copy 工具
# hdfs dfsadmin -safemode get ## 返回安全模式是否开启的信息,返回 Safe mode is OFF/OPEN oop
# hdfs dfsadmin -safemode enter ## 进入安全模工 url
# hdfs dfsadmin -safemode leave ## 强制 NameNode 离开安全模式 spa
# hdfs dfsadmin -safemode wait ## 等待,一直到安全模式结束 .net
hdfs dfsadmin 的其余命令:
命令行
命令选项 | 描述 |
---|---|
-report | 报告文件系统的基本信息和统计信息。 |
-safemode enter | leave | get | wait | 安全模式维护命令。安全模式是Namenode的一个状态,这种状态下,Namenode 1. 不接受对名字空间的更改(只读) 2. 不复制或删除块 Namenode会在启动时自动进入安全模式,当配置的块最小百分比数知足最小的副本数条件时,会自动离开安全模式。安全模式能够手动进入,可是这样的话也必须手动关闭安全模式。 |
-refreshNodes | 从新读取hosts和exclude文件,更新容许连到Namenode的或那些须要退出或入编的Datanode的集合。 |
-finalizeUpgrade | 终结HDFS的升级操做。Datanode删除前一个版本的工做目录,以后Namenode也这样作。这个操做完结整个升级过程。 |
-upgradeProgress status | details | force | 请求当前系统的升级状态,状态的细节,或者强制升级操做进行。 |
-metasave filename | 保存Namenode的主要数据结构到hadoop.log.dir属性指定的目录下的<filename>文件。对于下面的每一项,<filename>中都会一行内容与之对应 1. Namenode收到的Datanode的心跳信号 2. 等待被复制的块 3. 正在被复制的块 4. 等待被删除的块 |
-setQuota <quota> <dirname>...<dirname> | 为每一个目录 <dirname>设定配额<quota>。目录配额是一个长整型整数,强制限定了目录树下的名字个数。 命令会在这个目录上工做良好,如下状况会报错: 1. N不是一个正整数,或者 2. 用户不是管理员,或者 3. 这个目录不存在或是文件,或者 4. 目录会立刻超出新设定的配额。 |
-clrQuota <dirname>...<dirname> | 为每个目录<dirname>清除配额设定。 命令会在这个目录上工做良好,如下状况会报错: 1. 这个目录不存在或是文件,或者 2. 用户不是管理员。 若是目录原来没有配额不会报错。 |
-help [cmd] | 显示给定命令的帮助信息,若是没有给定命令,则显示全部命令的帮助信息。 |