我们在刚启动hadoop集群的时候,肯定碰到过集群处于安全模式的情况,这个时候集群是只读的状态,不允许用户对其进行更改操作。那么这时候为什么会出现这样的情况,而这时集群在干什么呢?什么时候会退出安全模式呢?安全模式有什么用呢?
什么时候集群会进入安全模式?
- NameNode启动时:在NameNode启动的时候,他会加载俩个文件,一个是FSimage,一个是Edits。这个俩个文件里面保存的是HDFS运行以来保存的全部元数据信息。在刚启动集群时,NameNode需要将历史的元数据加载到内存中,然后才可以继续工作。而这个时候集群是出于安全模式,用户对集群是出于只读模式。
- DataNode启动时:DataNode中数据的块信息不是在NameNode中持久保存,而是在启动集群时,DataNode主动将数据的块信息同步到NameNode中,而执行这个同步的过程时,集群时处于安全模式的。
什么时候会退出安全模式?
- 集群在启动时,整个文件系统中有99.9%的块满足最小副本的条件时,系统会在30秒之后推出安全模式。也就是说,在启动集群时,内存中加载文件系统中之前的数据块,每个块满足了配置文件中最小的副本数的条件,安全模式就会退出。这个默认的配置是dfs.replication.min = 1;
安全模式有什么用呢?
- 安全模式的用处在于“安全”这俩字。正是因为安全模式的存在,用户在数据未恢复完整之前不可以对其进行操作,进而避免了数据更新时会出现的一些错误。
安全模式有关的命令:
- 查看安全模式状态:bin/hdfs dfsadmin -safemode get
- 进入安全模式状态:bin/hdfs dfsadmin -safemode enter
- 离开安全模式状态:bin/hdfs dfsadmin -safemode leave
- 等待安全模式状态:bin/hdfs dfsadmin -safemode wait
下面来说说什么NameNode启动时加载的那俩个文件。
其实这个俩个文件是为了保证NameNode可以高效的工作。当用户在对文件系统进行上传,下载等操作时,NameNode肯定需要记录用户的操作并且响应。但是如果将元数据放到磁盘上,虽然保证了数据的可靠性,但是不够快。所以肯定要把元数据放到内存中,但是内存中存放有风险,一旦断电就全部丢失。
所以 NameNode底层维护了一个叫做FSimage的镜像文件,当NameNode更新元数据信息时,同时也更新FSimage中的元数据信息,如果节点突然宕机也可以从文件中恢复过来。但是如果每次都是在操作时同时更新FSimage文件,效率很低,而且在断电时会丢失数据。
所以又引入了一个预编译日志,Edits。在NameNode对元数据进行更改时,数据已追加的方式写入Edits,这样效率就很快。但是追加到一定地步Edits也会变得很大,效率也会降低。
所以轮到SecondaryNameNode触发检查点机制(CheckPoint),他会定期去检查NameNode上的Edits文件数据,按配置的要求将Edits中的数据和FSimage中的数据进行合并,合并完成更新到NameNode上。
所以在启动集群的时候,NameNode需要加载这个俩个文件才可以将文件系统中的数据恢复完成,供用户继续使用。
关闭了hadoop集群下次怎么打开 hadoop集群关闭安全模式
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
第二十四节 docker构建hadoop集群
大数据集群测试 hadoop实验
hadoop xml docker -
一步一步教你搭建Hadoop分布式集群
旨在说明如何部署hadoop伪分布式集群和完全分布式集群
hadoop vim Hadoop -
自动关闭hadoop安全模式 hadoop怎么关闭防火墙
Hadoop集群搭建教程1.需求2.先创建一台虚拟机3.关闭防火墙4.修改ip地址5.配置hosts6.克隆7.设置ssh免密登陆第一台机第二台机第三台机8.解压hadoop和jdk9.配置Hadoop和jdk环境变量10配置Hadoop配置文件11.开启hadoop 1.需求需求: jdk安装包、 Hadoop安装包2.先创建一台虚拟机过程就不演示了3.关闭防火墙1)查看防火墙 service
自动关闭hadoop安全模式 hadoop集群安装 hadoop基础 hadoop集群配置 伪分布式集群搭建hadoop