一個微小的投入就會帶來巨大的突變
集群安全模式
為什么出現集群安全模式呢?
? 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 (功能描述:等待安全模式狀態)
相關資料

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/148107.html
標籤:Java
上一篇:變數的四種參考
下一篇:Java獲取反射的三種方法
