大數據之hadoop集群安全模式


集群安全模式
1.概述
(1)NameNode啟動
NameNode啟動時,首先將鏡像文件(Fsimage)載入內存,並執行編輯日志(Edits)中的各項操作。-旦在內存中成功建立文件系統元數據的影像,則創建一個新的Fsimage文件和一個空的編輯日志。此時,NameNode開始監聽DataNode請求。這個過程期間,NameNode一直運行在安全模式,即NameNode的文件系統對於客戶端來說是只讀的
(2)DataNode啟動
系統中的數據塊的位置並不是由NameNode維護的,而是以塊列表的形式存儲在DataNode中,在系統的正常操作期間,NameNode會在內存中保留所有塊位置的映射信息。在安全模式下,各個DataNode會向NameNode發送最新的塊列表信息,NameNode了解到足夠多的塊位置信息之后,即可高效運行文件系統。
(3)安全模式退出判斷
如果滿足“最小副本條件”,NameNode會在30秒鍾之后就退出安全模式。所謂的最小副本條件指的是在整個文件系統99.9%的塊滿足最小副本級別(默認值:dfs.replication=1)。在啟動一個剛剛格式化的HDFS集群時,因為系統中還沒有任何塊,所以NameNode不會進入安全模式。
2.基本語法
集群處於安全模式,不能執行重要操作(寫操作)。集群啟動完成后,自動退出安全模式。

1)bin/hdfs dfsadmin -safemode get    (功能描述:查看安全模式狀態)
(2)bin/hdfs dfsadmin -safemode enter (功能描述:進入安全模式狀態)
(3)bin/hdfs dfsadmin -safemode leave    (功能描述:離開安全模式狀態)
(4)bin/hdfs dfsadmin -safemode wait    (功能描述:等待安全模式狀態)

3.案例
模擬等待安全模式
(1)查看當前模式

[linyouyi@hadoop01 hadoop-2.7.7]$ hdfs dfsadmin -safemode get
Safe mode is OFF

(2)先進入安全模式

[linyouyi@hadoop01 hadoop-2.7.7]$ bin/hdfs dfsadmin -safemode enter

(3)創建並執行下面的腳本
在/hadoop/module/hadoop-2.7.7路徑上,編輯一個腳本safemode.sh

[linyouyi@hadoop01 hadoop-2.7.7]$ touch safemode.sh
[linyouyi@hadoop01 hadoop-2.7.7]$ vim safemode.sh
#!/bin/bash
hdfs dfsadmin -safemode wait
hdfs dfs -put /hadoop/module/hadoop-2.7.7/README.txt /

[linyouyi@hadoop01 hadoop-2.7.7]$ chmod 777 safemode.sh
[linyouyi@hadoop01 hadoop-2.7.7]$ ./safemode.sh 

(4)再打開一個窗口,執行

[linyouyi@hadoop01 hadoop-2.7.7]$ bin/hdfs dfsadmin -safemode leave

(5)觀察
(a)再觀察上一個窗口

[linyouyi@hadoop01 hadoop-2.7.7]$ bin/hdfs dfsadmin -safemode get
Safe mode is OFF

(b)HDFS集群上已經有上傳的數據了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM