HDFS-NameNode工作机制(五)集群安全模式操作

Posted on 2020-04-16 12:05  MissRong  阅读(281)  评论(0)    收藏  举报

集群安全模式操作

一、概述

Namenode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件和一个空的编辑日志。此时,namenode开始监听datanode请求。

但是此刻,namenode运行在安全模式,即namenode的文件系统对于客户端来说是只读的。

系统中的数据块的位置并不是由namenode维护的,而是以块列表的形式存储在datanode中。在系统的正常操作期间,namenode会在内存中保留所有块位置的映射信息。在安全模式下,各个datanode会向namenode发送最新的块列表信息,namenode了解到足够多的块位置信息之后,即可高效运行文件系统。

如果满足“最小副本条件”,namenode会在30秒钟之后就退出安全模式。所谓的最小副本条件指的是在整个文件系统中99.9%的块满足最小副本级别(默认值:dfs.replication.min=1)。在启动一个刚刚格式化的HDFS集群时,因为系统中还没有任何块,所以namenode不会进入安全模式。

二、基本语法

集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。

(1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态)

(2)bin/hdfs dfsadmin -safemode enter   (功能描述:进入安全模式状态)

可进入50070页面查看Summary。

输入命令:hdfs dfsadmin -safemode enter 

进入安全模式状态之后,再进行其它操作就不行了。

(3)bin/hdfs dfsadmin -safemode leave (功能描述:离开安全模式状态)

离开之后可进行其他操作了。

(4)bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态)

三、案例

模拟等待安全模式

1)先进入安全模式

bin/hdfs dfsadmin -safemode enter

2)执行下面的脚本

编辑一个脚本(注:必须已设置环境变量,要不就写绝对路径)

打开 /opt/目录--》创建.sh文件touch Renne.sh -->进入:vi Renne.sh-->之后粘贴上下面框中的配置内容并保存

#!bin/bash

hdfs dfsadmin -safemode wait

hadoop fs -put /opt/BBB /

刚才复制内容中的:hdfs dfsadmin -safemode wait 代表进入安全模式的等待状态。

按照此内容中第三行的旨意,需要在/opt/目录下创建一个文件BBB,这样在之后的leave执行后就可以将此BBB文件上传到HDFS上。

3)查看安全模式是否进入

hdfs dfsadmin -safemode get

4)执行脚本

sh ./Renne.sh

5)再打开一个窗口

执行: hdfs dfsadmin -safemode leave

6)刷新50070网页,查看BBB文件是否已经上传即可

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3