科技改变生活 · 科技引领未来
然后我们再来看,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 也已经上传成功了.
所以有些任务,我们可以加上,进入安全模式等待模式的命令,这样一旦安全模式结束,就会执行我们的命令了.
?
王同华