这篇文章主要讲解了“hadoop安全模式相关知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“hadoop安全模式相关知识点有哪些”吧!
namenode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。
一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件(这个操作不需要借助辅助namenode)和一个空的编辑日志。此时,namnode开始监听RPC和HTTP请求。
在启动阶段。
但是此刻,namenode运行在安全模式,即namenode的文件系统对于客户端来说是只读的。
严格来说,在安全模式下,只有那些访问文件系统元数据的文件系统操作是可以成功的,例如显示目录列表等。
对于读文件操作来说,只有集群中当前datanode上的块可用时,才能够读取文件。但文件修改操作(包括写、删除或重命名)均会失败。
需要强调的是,系统中数据块的位置并不是由namenode维护的,而是以块列表的形式存储在datanode中。
在系统的正常操作期间,namenode会在内存中保留所有块位置的映射信息。
1)、datanode向namenode检查块列表信息。
2)、namenode不向datanode发出任何块复制或块删除命令。即,执行复制或删除块失败。
详细过程为:
1)、在安全模式下,各个datanode会向namenode检查块列表信息(即向namenode发送块列表的最新情况)
2)、namenode了解到足够多的块位置信息之后,即可高效运行文件系统。
3)、但如果namenode没有检查到足够多的datanode,则需要将块复制到其他datanode,而在大多数情况下这都是不必要的(因为只需等待检查到若干datanode检入),并会极大地浪费集群的资源。
4)、实际上,在安全模式下,namenode并不向datanode发出任何块复制或块删除的命令。
当满足“最小复本条件”(minimal replication condition),namenode会在30秒钟之后就退出安全模式。
最小副本条件是在整个文件系统中有99.9%的块满足最小副本级别(默认值是1,由dfs.replication.min属性设置)。
如下表:
因为系统中还没有任何块,所以namenode不会进入安全模式。
hadoop dfsadmin -safemode get
在HDFS的网页界面也能够显示namenode是否处于安全模式。
当用户期望在执行某条命令之前namenode先退出安全模式,如何操作?
有时用户期望在执行某条命令之前namenode先退出安全模式,特别是在脚本中。使用wait选项能够达到这个目的:
hadoop dfsadmin -safemode wait
管理员随时可以让namenode进入或离开安全模式。这项功能在维护和升级集群时非常关键,因为需要确保数据在指定时段内是只读的。
hadoop dfsadmin -safemode enter
hadoop dfsadmin -safemode leave
namenode在启动阶段会处于安全模式。在此期间也可使用这条命令,从而确保namenode在启动完毕之后不离开安全模式。
另一种使namenode永远处于安全模式的方法是将属性dfs.safemode.threshold.pct的值设为大于1。
感谢各位的阅读,以上就是“hadoop安全模式相关知识点有哪些”的内容了,经过本文的学习后,相信大家对hadoop安全模式相关知识点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。