HDFS的安全模式 安全模式是HDFS的一種工作狀態,處於安全模式的狀態下,只向客戶端提供文件的只讀視圖,不接受對命名空間的修改;同時NameNode節點也不會進行數據塊的複製或者刪除,如:副本的數量小於正常水平。 NameNode啟動時,首先fsimage載入記憶體,並執行編輯日誌中的操作。一旦文件 ...
HDFS的安全模式
安全模式是HDFS的一種工作狀態,處於安全模式的狀態下,只向客戶端提供文件的只讀視圖,不接受對命名空間的修改;同時NameNode節點也不會進行數據塊的複製或者刪除,如:副本的數量小於正常水平。
NameNode啟動時,首先fsimage載入記憶體,並執行編輯日誌中的操作。一旦文件系統元數據建立成功,便會創建一個空的編輯日誌。此時,NameNode開始監聽RPC和Http請求。但是此時NameNode處於安全模式,只接受客戶端的讀請求。
在安全模式下,各個DataNode會向NameNode發送自身的數據塊列表,當NameNode有足夠的數據塊信息後,便在30秒後退出安全模式,若NameNode發現數據節點過少會啟動數據塊複製過程(基本不會)
當hadoop的NameNode節點啟動時,會進入安全模式階段。在此階段,DataNode會向NameNode上傳他們數據塊的列表,讓NameNode得到數據塊的位置信息,並對每個文件對應的數據塊副本進行統計。當最小副本條件滿足時,即:一定比例的數據塊都到達最小副本數,系統會退出安全模式。而這需要一定的延遲時間。當最小的副本條件未達到要求時,就會對副本數不足的數據塊安排DataNode進行複製,直到達到最小的副本數。而在安全模式下,系統會處於只讀裝態,NameNode不會處理任何數據塊的複製和刪除命令。
在啟動一個剛剛格式化的HDFS時系統不會進入安全模式,因為沒有數據塊。
HDFS安全模式相關的命令
hadoop dfsadmin -safemode leave 強制NameNode退出安全模式
hadoop dfsadmin -safemode enter 進入安全模式
hadoop dfsadmin -safemode get 查看安全模式狀態
hadoop dfsadmin -safemode wait 等待一直到安全模式結束