Hadoop中namenode和secondarynamenode工作机制讲解

 更新时间:2019年01月11日 10:11:20   作者:qq_43193797  
今天小编就为大家分享一篇关于Hadoop中namenode和secondarynamenode工作机制讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

1)流程

2)FSImage和Edits

nodenode是HDFS的大脑,它维护着整个文件系统的目录树,以及目录树里所有的文件和目录,这些信息以俩种文件存储在文件系统:一种是命名空间镜像(也称为文件系统镜像,File System Image,FSImage),即HDFS元数据的完整快照,每次NameNode启动的时候,默认会加载最新的命名空间镜像,另一种是命令空间镜像的编辑日志(Edit log)。

FSImage文件其实是文件系统元数据的一个永久性检查点,但并非每一个写操作都会更新这个文件,因为FSImage是一个大型文件,如果频繁地执行写操作,会使系统运行极为缓慢。解决方案是NameNode只将改动内容预写日志,即写入命名空间镜像的编辑日志.随着时间的推移,编辑日志会变得越来越大,那么一旦发生故障,将会话费非常多的时间来回滚操作,所以就像传统的关系数据库一样,需要定期地合并FSImage和编辑日志。如果由NameNode来做合并操作,那么NameNode在为集群提供服务时可能无法提供足够的资源,为了彻底解决这一问题,SecondaryNameNode应允而生。

3)第一阶段:namenode 启动

  • (1)第一次启动 namenode 格式化后,创建 fsimage 和 edits 文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
  • (2)客户端对元数据进行增删改的请求。
  • (3)namenode 记录操作日志,更新滚动日志。
  • (4)namenode 在内存中对数据进行增删改查。

4)第二阶段:Secondary NameNode 工作

  • (1)Secondary NameNode 询问 namenode 是否需要 checkpoint。直接带回 namenode 是否检查结果。
  • (2)Secondary NameNode 请求执行 checkpoint。
  • (3)Secondary NameNode引导namenode 滚动更新编辑正在写的 edits 日志。
  • (4) Secondary NameNode载入FSImage文件,回放编辑日志,将其合并到FSImage,将新的FSImage文件压缩后写入磁盘。
  • (5)拷贝 fsimage到 namenode。
  • (6)namenode 将 fsimage重新命名成 fsimage。

默认情况下,该过程每小时发生一次,或者当NameNode的编辑日志文件到达默认的64MB也会触发。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Spark的广播变量和累加器使用方法代码示例

    Spark的广播变量和累加器使用方法代码示例

    这篇文章主要介绍了Spark的广播变量和累加器使用方法代码示例,文中介绍了广播变量和累加器的含义,然后通过实例演示了其用法,需要的朋友可以参考下。
    2017-09-09
  • TeamCenter12登陆报404/503问题解决方案

    TeamCenter12登陆报404/503问题解决方案

    这篇文章主要介绍了TeamCenter12登陆报404/503问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • MongoDB学习笔记(五) MongoDB文件存取操作

    MongoDB学习笔记(五) MongoDB文件存取操作

    由于MongoDB的文档结构为BJSON格式(BJSON全称:Binary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中
    2013-07-07
  • centos6.7安装mysql5.5.48的方法

    centos6.7安装mysql5.5.48的方法

    这篇文章主要介绍了centos6.7安装mysql5.5.48的方法,较为详细的分析了centos6.7下安装mysql的实现方法及易错问题与注意事项,需要的朋友可以参考下
    2016-05-05
  • CentOS环境下单独安装apachebench的方法

    CentOS环境下单独安装apachebench的方法

    这篇文章主要介绍了CentOS环境下单独安装apachebench的方法,分析了apachebench的安装步骤与相关注意事项,需要的朋友可以参考下
    2016-10-10
  • 戴尔R510_R410_R610_R710等所有服务器安装win2003解决办法

    戴尔R510_R410_R610_R710等所有服务器安装win2003解决办法

    这篇文章主要介绍了戴尔R510_R410_R610_R710等所有服务器安装win2003解决办法,需要的朋友可以参考下
    2016-04-04
  • 阿里云安全规则配置详解

    阿里云安全规则配置详解

    这篇文章主要介绍了阿里云安全规则配置详解,如果你不将端口设置安全规则,浏览器是无法访问到的,那么安全规则配置到底是怎么配的呢?详见如下
    2019-12-12
  • 游戏服务器开发的基本体系与服务器端开发的一些建议

    游戏服务器开发的基本体系与服务器端开发的一些建议

    刚开始时以为做游戏服务器和做web差不多,但是经过一段时间之后,才发现代码太多,太乱了,一看代码都想重构,都是踩着坑往前走。这里我把一些游戏开发方面的东西整理一下,希望能对那些想做游戏服务器开发的朋友有所帮助
    2017-07-07
  • N点主机管理系统的重装步骤(图文)

    N点主机管理系统的重装步骤(图文)

    这篇文章主要介绍了N点主机管理系统的重装步骤(图文),需要的朋友可以参考下
    2015-10-10
  • Win2008 蓝屏漏洞揭秘

    Win2008 蓝屏漏洞揭秘

    蓝屏漏洞威胁的是服务器操作系统Windows Server 2008,这意味着如果Windows Server 2008蓝屏,将导致服务器停止服务……
    2009-10-10

最新评论