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] | 顯示給定命令的幫助信息,若是沒有給定命令,則顯示全部命令的幫助信息。 |