Hadoop集群安全模式概述

您所在的位置:网站首页 查看安全模式 Hadoop集群安全模式概述

Hadoop集群安全模式概述

2024-07-15 01:09| 来源: 网络整理| 查看: 265

我们在刚启动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需要加载这个俩个文件才可以将文件系统中的数据恢复完成,供用户继续使用。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3