科技改變生活 · 科技引領未來
然后我們再來看,hadoop的安全模式,我們操作一下,上面的命令對應了相應的功能
?
我們先執行
/opt/module/hadoop-2.7.2/bin/hdfs dfsadmin -safemode get
可以看到,查詢到當前的,安全模式是關閉的
safe mode is off
?
然后我們去web端看看,safemode 也是off了.
?
然后我們再去打開
/opt/module/hadoop-2.7.2/bin/hdfs dfsadmin -safemode enter
可以看到safe mode is on打開了
?
然后我們去web端去看看,可以看到
安全模式打開了
?
然后我們再去在安全模式打開的情況下,我們嘗試去上傳個文件
bin/hdfs dfs -put zaiyiqi.txt / 我們上傳到hdfs的根目錄去.
?
我們上次之前先去web端去看看,根目錄在我們上傳之前沒有這個文件
?
然后我們執行,報錯了,提示說,namenode 在安全模式的時候不能上傳.對吧.
?
然后我們再去
bin/hdfs dfsadmin -safemode leave 我們關閉安全模式
?
然后我們再去上傳試試
bin/hdfs dfs -put zaiyiqi.txt /
?
去看看可以看到,如果把安全模式關閉了,就可以上傳成功了,也說明了,如果在安全模式的時候,是不允許操作數據的.
?
然后我們再去看一個命令,這個
bin/hdfs dfsadmin -safemode wait 這個是等待安全模式的狀態
其實這個安全模式就有點類似,金融行業中的對賬操作.
比如每天晚上凌晨0點到1點,銀行對賬,這個過程中,不允許取錢存錢業務,一旦對賬完了,就可以進行存錢取錢業務了.
?
?
好,首先我們去
bin/hdfs dfsadmin -safemode enter 打開安全模式
?
然后我們再去先去創建一個腳本
touch safemode.sh
vim safemode.sh
?
然后把內容寫上
可以看到第一句是
hdfs dfsadmin -safemode wait 進入安全模式等待模式,這個時候,當我們執行命令的時候,這個命令會阻塞,一旦安全模式退出了這個命令就會立馬執行.
hdfs dfs -put /opt/module/hadoop-2.7.2/README.txt / 這一句是上傳README.txt文件到hdfs的根目錄,但是他會阻塞到,安全模式退出,才會上傳成功.
?
然后我們執行這個腳本
bash safemode.sh 可以看到一執行,就卡住了,阻塞了,因為現在是安全模式
?
然后我們去關閉安全模式
bin/hdfs dfsadmin -safemode leave
可以看到關閉了安全模式
?
然后我們再回到原來的執行腳本的窗口看看
bash safemode.sh 腳本已經執行成功了
?
然后我們去后臺看看,
README.txt 也已經上傳成功了.
所以有些任務,我們可以加上,進入安全模式等待模式的命令,這樣一旦安全模式結束,就會執行我們的命令了.
?
王同華