一個微小的投入就會帶來巨大的突變 集群安全模式 為什麼出現集群安全模式呢? Namenode啟動時,首先將鏡像文件載人記憶體,並執行編輯日誌中的各項操作。一旦在內存中成功建立文件系統元數據的映像,則創建一個新的Fsimage文件和一個空的編輯日誌。此時,** Namenode開始監聽Datanod ...
一個微小的投入就會帶來巨大的突變
集群安全模式
為什麼出現集群安全模式呢?
Namenode啟動時,首先將鏡像文件載人記憶體,並執行編輯日誌中的各項操作。一旦在內存中成功建立文件系統元數據的映像,則創建一個新的Fsimage文件和一個空的編輯日誌。此時,** Namenode開始監聽Datanode請求**。這個過程期間, Namenode一直運行在安全模式,即NameNode的文件系統對於客戶端來說是只讀的
其實安全模式就是集群數據都還沒準備好時候的一個保護機制
DataNode啟動發生的事情
系統中的數據塊的位置並不是由 NameNode維護的,而是以塊列表的形式存儲在 DataNode中。在系統的正常操作期間, NameNode會在記憶體中保留所有塊位置的映射信息。在安全模式下,各個 DataNode會向NameNode發送最新的塊列表信息, NameNode瞭解到足夠多的塊位置信息之後,即可髙效運行文件系統
這個足夠多是多少呢?99.9%
安全模式退出的判斷
如果滿足“最小副本條件”, NameNode會在30秒鐘之後就退出安全模式。所謂的最小副本條件指的是在整個文件系統中99.9%的塊滿足最小副本級別(預設值:dfs.replication.min=1)。在啟動一個剛剛格式化的HDFS集群時,因為系統中還沒有任何塊,所以 Namenode不會進入安全模式。
集群安全模式下的操作
- hdfs dfsadmin -safemode get (功能描述:查看安全模式狀態)
- hdfs dfsadmin -safemode enter (功能描述:進入安全模式狀態)
- hdfs dfsadmin -safemode leave (功能描述:離開安全模式狀態)
- hdfs dfsadmin -safemode wait (功能描述:等待安全模式狀態)