參考:https://www.cnblogs.com/wangwang6/p/8335478.htmlhtml
做用:node
安全模式是 HDFS 的保護機制,用於保證集羣中的數據塊的安全性。安全
當集羣啓動的時候,會首先進入安全模式。當系統處於安全模式時會檢查數據塊的完整性。假設咱們設置的副本數(即參數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個副本。oop
安全模式是HDFS的一種工做狀態,處於安全模式的狀態下,只向客戶端提供文件的只讀視圖,不接受對命名空間的修改;同時NameNode節點也不會進行數據塊的複製或者刪除,如:副本的數量小於正常水平。日誌
NameNode啓動時,首先fsimage載入內存,並執行編輯日誌中的操做。一旦文件系統元數據創建成功,便會建立一個空的編輯日誌。此時,NameNode開始監聽RPC和Http請求。可是此時NameNode處於安全模式,只接受客戶端的讀請求。xml
在安全模式下,各個DataNode會向NameNode發送自身的數據塊列表,當NameNode有足夠的數據塊信息後,便在30秒後退出安全模式,若NameNode發現數據節點過少會啓動數據塊複製過程(基本不會)htm
當hadoop的NameNode節點啓動時,會進入安全模式階段。在此階段,DataNode會向NameNode上傳他們數據塊的列表,讓NameNode獲得數據塊的位置信息,並對每一個文件對應的數據塊副本進行統計。當最小副本條件知足時,即:必定比例的數據塊都到達最小副本數,系統會退出安全模式。而這須要必定的延遲時間。當最小的副本條件未達到要求時,就會對副本數不足的數據塊安排DataNode進行復制,直到達到最小的副本數。而在安全模式下,系統會處於只讀裝態,NameNode不會處理任何數據塊的複製和刪除命令。blog
在啓動一個剛剛格式化的HDFS時系統不會進入安全模式,由於沒有數據塊。內存