HDFS安全模式

HDFS安全模式

1. 安全模式概述
安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求,是一种保护机制,用于保证集群中的数据块的安全性。
在NameNode主节点启动时,HDFS首先进入安全模式,集群会开始检查数据块的完整性。DataNode在启动的时候会向namenode汇报可用的block信息,当整个系统达到安全标准时,HDFS自动离开安全模式。
假设我们设置的副本数(即参数dfs.replication)是5,那么在Datanode上就应该有5个副本存在,假设只存在3个副本,那么比例就是3/5=0.6。在配置文件hdfs-default.xml中定义了一个最小的副本的副本率(即参数dfs.namenode.safemode.threshold-pct)0.999。
我们的副本率0.6明显小于0.99,因此系统会自动的复制副本到其他的DataNode,使得副本率不小于0.999.如果系统中有8个副本,超过我们设定的5个副本,那么系统也会删除多余的3个副本。
如果HDFS处于安全模式下,不允许HDFS客户端进行任何修改文件的操作,包括上传文件,删除文件,重命名,创建文件夹,修改副本数等操作。

2. 安全模式配置
与安全模式相关主要配置在hdfs-site.xml文件中,主要有下面几个属性:
dfs.namenode.replication.min: 每个数据块最小副本数量,默认为1. 在上传文件时,达到最小副本数,就认为上传是成功的。
dfs.namenode.safemode.threshold-pct: 达到最小副本数的数据块的百分比。默认为0.999f。当小于这个比例,那就将系统切换成安全模式,对数据块进行复制;当大于该比例时,就离开安全模式,说明系统有足够的数据块副本数,可以对外提供服务。小于等于0意味不进入安全模式,大于1意味一直处于安全模式。
dfs.namenode.safemode.min.datanodes: 离开安全模式的最小可用datanode数量要求,默认为0.也就是即使所有datanode都不可用,仍然可以离开安全模式。
dfs.namenode.safemode.extension: 当集群可用block比例,可用datanode都达到要求之后,如果在extension配置的时间段之后依然能满足要求,此时集群才离开安全模式。单位为毫秒,默认为30000.也就是当满足条件并且能够维持30秒之后,离开安全模式。 这个配置主要是对集群稳定程度做进一步的确认。避免达到要求后马上又不符合安全标准。
总结一下,要离开安全模式,需要满足以下条件:
1)达到副本数量要求的block比例满足要求;
2)可用的datanode节点数满足配置的数量要求;
3) 1、2 两个条件满足后维持的时间达到配置的要求
3. 安全模式命令
手动进入安全模式
hdfs dfsadmin -safemode enter
手动进入安全模式对于集群维护或者升级的时候非常有用,因为这时候HDFS上的数据是只读的。手动退出安全模式可以用下面命令:
hdfs dfsadmin -safemode leave
如果你想获取到集群是否处于安全模式,可以用下面的命令获取:
hdfs dfsadmin -safemode get(也可在web页面查看安全模式状态)

转载于:https://blog.51cto.com/13587708/2298200

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101378.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 测试用例方法–等价类划分法「建议收藏」

    测试用例方法–等价类划分法「建议收藏」等价类划分法定义与使用

    2022年10月17日
  • Javadeque_deque接口

    Javadeque_deque接口Queue也是Java集合框架中定义的一种接口,直接继承自Collection接口。除了基本的Collection接口规定测操作外,Queue接口还定义一组针对队列的特殊操作。通常来说,Queue是按照先进先出(FIFO)的方式来管理其中的元素的,但是优先队列是一个例外。Deque接口继承自Queue接口,但Deque支持同时从两端添加或移除元素,因此又被成为双端队列。鉴…

    2022年9月20日
  • 阻止mouseover冒泡行为_onmousedown是什么意思

    阻止mouseover冒泡行为_onmousedown是什么意思一.onmouseenter、onmouseoveronmouseenter事件在鼠标指针进入到绑定事件的那个元素上时触发。该事件通常与onmouseleave(在鼠标指针离开绑定事件的那个元素上时触发)事件一同使用。onmouseenter事件类似于onmouseover事件。唯一的区别是onmouseenter事件不支持冒泡。二.实例演示onmousemov…

    2022年10月8日
  • web安全常见漏洞_web漏洞挖掘

    web安全常见漏洞_web漏洞挖掘常见Web漏洞小结1越权漏洞不同权限账户之间的存在越权访问检测抓去a用户功能链接,然后登录b用户对此链接进行访问抓去a用户功能链接,修改id为b的id,查看是否能看b的相关数据替换不同的cookie进行测试查看防范1服务器端必须对每个页面链接进行权限判断。2用户登陆后,服务器端不应再以客户端提交的用户身份信息为依据,而应以会话中服务端保存的已登陆的用户身份信息为准。3页面提交的资源标志与已登陆的用户身份进行匹配比对,然后判断其对当前链接是否有权限。4必须在服务器端对每个请求URL进行鉴

    2022年9月20日
  • 无线充电器方案(方案选型)

    一文读懂无线充电技术(附方案选型及原理分析)0.背景1.无线供电特点2.无线供电原理及实现方式3.现有解决方案分析4.FAQ及相关测试5.参考资料0.背景现今几乎所有的电子设备,如手机,MP3和笔记本电脑等,进行充电的方式主要是有线电能传输,既一端连接交流电源,另一端连接便携式电子设备充电电池的。这种方式有很多不利的地方,首先频繁的插拔很容易损坏主板接口,另外不…

    2022年4月17日
  • sql语句大全+实例讲解=>2021年9月更新

    sql语句大全+实例讲解=>2021年9月更新1.创建3张表//学生表创建CREATEtablestudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(20)UNIQUE,Ssexchar(2),SageSMALLINT,Sdeptchar(20));//课程表创建CREATEtablecourse(Cnochar(4)PRIMARYKEY,Cnamechar(40)notNULL,Cpnochar(4),CcreditSMALLINT);//学生选课

    2022年5月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号