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也会触发。

总结

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

相关文章

  • Rsync 服务器文件同步的搭建以及使用

    Rsync 服务器文件同步的搭建以及使用

    rsync 是类unix系统下的数据镜像备份工具, 它可以镜像保存整个目录树和文件系统。并且很容易做到保持原文件的权限,时间,软硬链接等等
    2013-11-11
  • 详解百度https认证提示"请将您的http站点301重定向到https站点"的解决办法

    详解百度https认证提示"请将您的http站点301重定向到https站点"的解决办法

    对于301重定向这一概念玩SEO的同志们都不陌生了,近些年来https协议越来越火,百度大大已经明确了对https的扶持政策,这篇文章主要介绍了详解百度https认证提示"请将您的http站点301重定向到https站点"的解决办法,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • vscode设置免密登录远程服务器的解决方案

    vscode设置免密登录远程服务器的解决方案

    当我们使用vscode的ssh连接远程服务器后,过一段时间后,总是要求登录服务器的密码,遇到这样的问题如何解决呢,下面给大家分享vscode设置免密登录远程服务器的解决方案,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • 阿里云mysql空间清理的方法

    阿里云mysql空间清理的方法

    今天小编就为大家分享一篇关于阿里云mysql空间清理的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • CentOS系统通过日志反查是否被入侵

    CentOS系统通过日志反查是否被入侵

    最近有个朋友的服务器发现有入侵的痕迹后来处理解决但是由于对方把日志都清理了无疑给排查工作增加了许多难度。其实日志的作用是非常大的。学会使用通过日志来排查解决我们工作中遇到的一些问题是很有必要的。下面就一一道来。
    2016-08-08
  • GitLab Pipeline规范及流程触发详解

    GitLab Pipeline规范及流程触发详解

    这篇文章主要为大家介绍了GitLab Pipeline规范及流程触发详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • IBM X346 板载 Raid1 功能启用及Win2003系统安装小记

    IBM X346 板载 Raid1 功能启用及Win2003系统安装小记

    有两台IBM X346 m/t-8840-cdr 服务器,板载raid控制器版本号为v.4.30.9,硬盘位0,1各装一块146G IBM 原装SCSI硬盘。
    2011-04-04
  • git标签管理_动力节点Java学院整理

    git标签管理_动力节点Java学院整理

    这篇文章主要为大家详细介绍了git标签管理的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 10个常见的HTTP状态码详解

    10个常见的HTTP状态码详解

    HTTP状态码是用以表示网页服务器HTTP响应状态的3位数字代码,下面为大家介绍500内部服务器错误,404文件未找到,403禁止访问 等常见的10个HTTP状态码
    2018-09-09
  • iis、apache、nginx使用X-Frame-Options防止网页被Frame的解决方法

    iis、apache、nginx使用X-Frame-Options防止网页被Frame的解决方法

    X-Frame-Options HTTP响应头是用来确认是否浏览器可以在frame或iframe标签中渲染一个页面,网站可以用这个头来保证他们的内容不会被嵌入到其它网站中
    2017-03-03

最新评论