1. 程式人生 > >第127講:Hadoop叢集管理之安全模式解析及動手實戰學習筆記

第127講:Hadoop叢集管理之安全模式解析及動手實戰學習筆記

127講:Hadoop叢集管理之安全模式解析及動手實戰學習筆記

hadoop在啟動時namenode會把fsimage載入進記憶體,同時和edits內容合併,以此建立整個檔案系統的元資料的映象(記憶體級別),所以客戶端可以通過namenode訪問檔案系統的資訊。完成後變成一個新的fsimage,這個過程是namenode自已完成的,同時會建立一個新的edits。這時namenode需要開始監聽rpchttp的請求,此時的狀態就叫安全模式。安全模式時整個檔案系統對客戶端來說是可讀的。實質上安全模式下可讀的要求更嚴,它只是對檔案系統的

元資料的操作會成功,例如檢視檔案系統上有哪些目錄,目錄下有哪些檔案。但對讀取檔案只有在叢集上的datanode

上的塊可用時才能實現。

系統中的block的位置不是由namenode維護的,而是以block list的形式儲存在datanode中,系統正常工作時namenode會在記憶體中儲存所有blocklocation的對映資訊,在安全模式下,每個datanode會向namenode傳送最新的block location list的最新資訊,namenode知道塊的資訊後客戶端就可以通過 namenode對檔案系統進行操作。

namenode如果認為block具體位置的資訊不夠多的話,即datanode上的節點複本不夠多時可能會啟動對block的複製過程。實質上一般不會發生,因為在hadoop中一般配置

3個複本,啟動安全模式時(dfs.namenode.replication.min)預設最小複本滿足1個就沒有問題了。

要退出安全模式也需要配置:dfs.namenode.safemode.threshold-pct:  0.999f,即整個檔案系統中最小的複本的個數為1滿足99.9%時就可以退出安全模式。

hadoop剛剛format時因為檔案系統中沒有檔案,這時不會進入安全模式。

hadoop dfsadmin -safemode get

可以獲得是否是安全模式。

hadoop dfsadmin -safemode enter/leave  進入退出安全模式

在系統維護升級時需要進入安全模式。禁止對系統操作。

dfs.namenode.safemode.min.datanodes=0

最小datanode個數,即退出安全模式時活著的datanode的具體數量。

=0即退出安全模式時不考慮datanode個數。

如果這個值大於叢集datanode個數,則叢集一直處於安全模式。

dfs.namenode.safemode.extension=3000

滿足了replication後再等待多長時間才退出安全模式。

以上內容是王家林老師DT大資料夢工廠《Hadoop深入淺出實戰經典》第127講的學習筆記。
王家林:SparkFlinkDockerAndroid技術中國區佈道師。Spark亞太研究院院長和首席專家,DT大資料夢工廠創始人,Android軟硬整合原始碼級專家,英語發音魔術師,健身狂熱愛好者。

微信公眾賬號:DT_Spark

電話:18610086859

QQ:1740415547

微訊號:18610086859  

新浪微博:ilovepains

王家林的第一個中國夢:免費為全社會培養100萬名優秀的大資料從業人員!

可以通過王家林老師的微訊號18610086859發紅包捐助,目前已經發布的王家林免費視訊全集如下:

127講視訊網站地址:

51CTO

http://edu.51cto.com/lesson/id-77868.html