
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都希望通过参加达内培训或者自学来学习互联网相关的技术知识,而本文我们就通过案例分析来简单了解一下,HDFS的安全模式概念与用法分享。
1、什么是HDFS的安全模式
Hdfs的安全模式,即HDFSsafemode,是HDFS文件系统的一种特殊状态,在该状态下,hdfs文件系统只接受读数据请求,而不接受删除、修改等变更请求,当然也不能对底层的block进行副本复制等操作。
从本质上将,安全模式是HDFS的一种特殊状态,而HDFS进入该特殊状态的目的,是为了确保整个文件系统的数据一致性/不丢失数据,从而限制用户只能读取数据而不能改动数据的。
2、什么情况下HDFS会进入安全模式
HDFS进入安全模式的情况分为两种,即主动进入与被动进入。
1.HDFS被动进入安全模式
管理员出于运维管理等各种原因,可以主动执行命令让hdfs进入安全模式,相关的命令有:hdfsdfsadmin-safemodeenter/get/leave;
2.HDFS主动进入安全模式
HDFS也可能会主动进入安全模式,这种情况更为常见,是HDFS在特殊状况下,为了保证整个文件系统的数据一致性/整个文件系统不丢失数据,而主动进入的一种自我保护状态,底层根本原因又分为两种:
HDFS底层启动成功并能够跟namenode保持定期心跳的datanode的个数没有达到指定的阈值,阈值通过参数dfs.namenode.safemode.min.datanodes指定;
HDFS底层达到了小副本数要求的block的百分比没有达到指定的阈值:小副本数通过参数dfs.namenode.replication.min/dfs.namenode.safemode.replication.min指定,阈值通过参数dfs.namenode.safemode.threshold-pct指定;
当然如果HDFS底层启动成功并能够跟namenode保持定期心跳的datanode的个数没有达到指定的阈值,此时HDFS底层达到小副本数要求的block的百分比一般也都不会达到指定的阈值;
不难理解,正常情况下,HDFS启动过程中会有一段时间主动进入安全模式并在一段时间后主动退出安全模式,这是由hdfs的分本式架构决定的,因为namenode启动成功后,需要等待datanode启动成功并通过心跳汇报datanode上存储的block的信息(blockreport),只有在掌握了足够的block的信息(达到小副本数要求的block占所有block的百分比达到指定的阈值),并等待特定时间后(通过参数dfs.namenode.safemode.extension30000控制),才会主动退出安全模式。
从现实情况来看,常见的HDFS进入安全模式的直接原因有:
部分datanode启动失败或者因为网络原因与namenode心跳失败;
部分datanode节点存储hdfs数据的磁盘卷有损坏,导致存储在该磁盘卷中的数据无法读取;
部分datanode节点存储hdfs数据的磁盘分区空间满,导致存储在该磁盘卷中的数据无法正常读取;
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。