Namenode 启动时,首先将映像文件(fsimage) 载入内存,并执行编辑日志(edits) 中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的 fsimage 文件和一个空的编辑日志。此时, namenode 开始监听 datanode 请求。但是此刻, namenode 运行在安全模式,即 namenode 的文件系统对于客户端来说是只读的。
系统中的数据块的位置并不是由 namenode 维护的,而是以块列表的形式存储在datanode 中。 在系统的正常操作期间, namenode 会在内存中保留所有块位置的映射信息。在安全模式下,各个 datanode 会向 namenode 发送最新的块列表信息, namenode 了解到足够多的块位置信息之后,即可高效运行文件系统。
如果满足“最小副本条件”, namenode 会在 30 秒钟之后就退出安全模式。所谓的最小副本 条 件 指 的 是 在 整 个 文 件 系 统 中 99.9% 的 块 满 足 最 小 副 本 级 别 (默 认 值 :dfs.replication.min=1) 。 在启动一个刚刚格式化的 HDFS 集群时,因为系统中还没有任何块,所以 namenode 不会进入安全模式。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。