热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hadoop中NameNode与SecondaryNameNode的运行机制解析

在Hadoop架构中,NameNode中的元数据存储位置是一个关键问题。通常,元数据会存储在内存中以提高访问效率,因为频繁的磁盘随机访问会导致性能下降。此外,NameNode还会定期将元数据的快照保存到磁盘上,以确保数据的持久性和恢复能力。SecondaryNameNode则负责定期合并这些快照和编辑日志,进一步增强系统的稳定性和可靠性。

  思考:nameNode中元数据的是存在哪里的呢?

  有两个可能,一个是存在磁盘中,另一个可能是存在内存中。如果存在磁盘中的话,效率比较低  ,因为需要经常的随机访问还要给出对应的响应到客户。如果吃存到内存中,一旦断点元数据就会丢失,集群则无法正常的工作。因此我们可以把两者结合,在磁盘中备份元数据  FSImage.

  新问题来了。如果内存中数据更新的时候同时在磁盘中备份数据,会导致效率降低,如果不更新就导致数据一致性。一旦NameNode断点会导致数据丢失。

  HDFS有一个特性是修改比较慢的特征,此时产生一个新的文件  Edits文件,只追加信息。当元数据有变动的时候,修改内存中元数据并追加到Edits中。如果NameNode节点断电会合并FSImage和Edits文件,如果数据过大断电的时候合并依然由NameNode进行,就会浪费时间,所以会定期的对两个文件进行合并,且这个操作交由SecondaryNameNode来操作。

 

 

 

 

 

 

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

第二 阶段:Secondary NameNode 工作
    (1)Secondary NameNode 询问 NameNode 是否需要 CheckPoint。直接带回 NameNode
        是否检查结果。
    (2)Secondary NameNode 请求执行 CheckPoint。
    (3)NameNode 滚动正在写的 Edits 日志。
    (4)将滚动前的编辑日志和镜像文件拷贝到 Secondary NameNode。
    (5)Secondary NameNode 加载编辑日志和镜像文件到内存,并合并。
    (6)生成新的镜像文件 fsimage.chkpoint。
    (7)拷贝 fsimage.chkpoint 到 NameNode。
    (8)NameNode 将 fsimage.chkpoint 重新命名成 fsimage

 



推荐阅读
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • Hadoop发行版本选择指南:技术解析与应用实践
    本文详细介绍了Hadoop的不同发行版本及其特点,帮助读者根据实际需求选择最合适的Hadoop版本。内容涵盖Apache Hadoop、Cloudera CDH等主流版本的特性及应用场景。 ... [详细]
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • MapReduce原理是怎么剖析的
    这期内容当中小编将会给大家带来有关MapReduce原理是怎么剖析的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 ... [详细]
  • Alluxio 1.5.0 版本发布:增强功能与优化
    Alluxio 1.5.0 开源版本引入了多项新特性和改进,旨在提升数据访问速度和系统互操作性。 ... [详细]
  • 深入解析:主流开源分布式文件系统综述
    本文详细探讨了几款主流的开源分布式文件系统,包括HDFS、MooseFS、Lustre、GlusterFS和CephFS,重点分析了它们的元数据管理和数据一致性机制,旨在为读者提供深入的技术见解。 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • MySQL PMM:MyISAM 和 Aria 存储引擎的性能优化
    本文探讨了 MyISAM 和 Aria 存储引擎在 MySQL 中的关键性能指标,包括密钥缓冲区效率、页面缓存读写性能以及事务日志同步策略。通过优化这些参数,可以显著提升数据库的整体性能。 ... [详细]
  • 本文详细介绍了 Java 中的 org.apache.hadoop.registry.client.impl.zk.ZKPathDumper 类,提供了丰富的代码示例和使用指南。通过这些示例,读者可以更好地理解如何在实际项目中利用 ZKPathDumper 类进行注册表树的转储操作。 ... [详细]
  • 大数据SQL优化:全面解析数据倾斜解决方案
    本文深入探讨了大数据SQL优化中的数据倾斜问题,提供了多种解决策略和实际案例,旨在帮助读者理解和应对这一常见挑战。 ... [详细]
  • 本文介绍了在解决Hive表中复杂数据结构平铺化问题后,如何通过创建视图来准确计算广告日志的曝光PV,特别是针对用户对应多个标签的情况。同时,详细探讨了UDF的使用方法及其在实际项目中的应用。 ... [详细]
  • 初探Hadoop:第一章概览
    本文深入探讨了《Hadoop》第一章的内容,重点介绍了Hadoop的基本概念及其如何解决大数据处理中的关键挑战。 ... [详细]
  • HDFS数据读写流程详解
    本文详细解析了HDFS(Hadoop分布式文件系统)中的数据读写过程,包括从客户端发起请求到最终完成数据传输的每一个关键步骤。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
author-avatar
杰仔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有