HDFS 安全模式的理解

記憶殘留發表於2016-07-25

安全模式是hadoop的一種保護機制,用於保證叢集中的資料塊的安全性。

當叢集啟動的時候,會首先進入安全模式。當系統處於安全模式時會檢查資料塊的完整性。假設我們設定的副本數(即引數dfs.replication)是5,那麼在datanode上就應該有5個副本存在,假設只存在3個副本,那麼比例就是3/5=0.6。在配置檔案hdfs-default.xml中定義了一個最小的副本的副本率0.999,如圖

 

我們的副本率0.6明顯小於0.99,因此係統會自動的複製副本到其他的dataNode,使得副本率不小於0.999.如果系統中有8個副本,超過我們設定的5個副本,那麼系統也會刪除多餘的3個副本。

 

安全模式對我們有什麼影響呢?

這時,不允許客戶端進行任何修改檔案的操作,包括上傳檔案,刪除檔案,重新命名,建立資料夾等操作。比如建立檔案時,在原始碼中就有對安全模式的判斷,如圖所示

當我們在安全模式下進行修改檔案操作時,會報如下錯誤,如圖

 

正常情況下,安全模式會執行一段時間自動退出的,只需要我們稍等一會就行了,到底等多長時間呢,我們可以通過50070埠檢視安全模式退出的剩餘時間,如圖

 

雖然不能進行修改檔案的操作,但是可以瀏覽目錄結構、檢視檔案內容的。

在命令列下是可以控制安全模式的進入、退出和檢視的。

命令 hadoop fs -safemode get 檢視安全模式狀態

命令 hadoop fs -safemode enter  進入安全模式狀態

命令 hadoop fs -safemode leave 離開安全模式

操作如圖所示

 

 安全模式是hadoop的一種保護機制,在啟動時,最好是等待叢集自動退出,然後進行檔案操作。

 

 

 

相關文章