简明扼要的HDFS元数据管理机制描述(NameNode和Secondary NameNode工作机制)
目录
- 一、思考: NameNode中的元数据是存储在哪里?
- 二、NameNode和Secondary NameNode工作机制
- 三、Fsimage和Edits概念
一、思考: NameNode中的元数据是存储在哪里?
不废话直接上答案(简明扼要的思考步骤)。
存入磁盘?错
原因:经常进行随机访问、还要响应客户请求。通过存放磁盘效率太低。
存入内存?错
原因:一旦断电,元数据丢失,整个集群就无法工作。
注意:因此产生在磁盘中备份元数据的FsImage。
产生了新问题:
1、当内存中的元数据更新时,如果同时更新FsImage,就会导致效率过低。
2、不更新时,就会产生一致性问题,一旦NameNode节点断电,内存中的元数据就会丢失。
解决办法:
引入Edits文件(只进行追加操作,效率很高)。
原因:每当元数据有更新或者添加元数据时,修改内存中的元数据并追加到Edits中(追加的是操作而不是操作结果)。这样,一旦NameNode节点断电,可以通过FsImage和Edits的合并,合成元数据。
又产生了新问题:
1、长时间添加数据到Edits中,会导致该文件数据过大,效率降低。
2、一旦断电,恢复元数据(FsImage和Edits的合并)需要的时间过长。
解决办法:
1、定期进行FsImage和Edits的合并。
2、引入新的节点(Secondary NameNode),专门用于FsImage和Edits的合并。缓解NameNode的压力,提升效率。
二、NameNode和Secondary NameNode工作机制
第一阶段:NameNode启动
- 第一次启动NameNode格式化后,创建FsImage和Edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存中。
- 客户端对元数据进行增删改的请求。
- NameNode记录操作日志,更新滚动日志。
- NameNode在内存中对元数据进行增删改。
第二阶段:Secondary NameNode工作
- Secondary NameNode询问NameNode是否需要CheckPoint。直接带回NameNode是否检查结果。
- Secondary NameNode请求执行CheckPoint。
- NameNode滚动正在写的Edits日志。
- 将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode。
- Secondary NameNode加载编辑日志和镜像文件到内存,并合并。
- 生成新的镜像文件fsimage.chkpoint。
- 拷贝fsimage.chkpoint到NameNode。
- NameNode将fsimage.chkpoint重新命名成fsimage。
三、Fsimage和Edits概念
NameNode被格式化后,会产生以下文件:
fsimage_0000000000000000000
fsimage_0000000000000000000.md5
seen_txid
VERSION
Fsimage文件(HDFS文件系统镜像):HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所以目录和文件inode的序列化信息。每个inode表征一个文件或目录的元数据信息以及文件的副本数、修改和访问时间等信息。
Edits文件(编辑日志):存放HDFS文件系统的所以更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到Edits文件中。
seen_txid文件:里面保存的是一个数字N,format(格式化)之后是0,代表的是edits_*文件中的尾数。NameNode重启时会按照seen_txid里的数字,循序从头跑edits_0000001~edits_000000N。
注意:当HDFS异常重启时,一定要检查seen_txid内的数字和edits_*文件的尾数是否匹配,否则会发生建置NameNode时metaData的资料有缺少,导致误删DataNode上多余的Block的资讯。
VERSION文件:Java属性文件,保存了HDFS的版本号。
每次NameNode启动的时候都会将Fsimage文件读入内存,加载Edits里面的更新操作,保证内存中的元数据信息是最新的、同步的,可以看成NameNode启动的时候就将Fsimage和Edits文件进行了合并。
简明扼要的HDFS元数据管理机制描述(NameNode和Secondary NameNode工作机制)相关推荐
- 【hadoop】NameNode和SceondaryNameNode的工作机制
一. 为什么会存在这样的工作机制? 1.NameNode中的元数据是存储在哪里的? (1)若是存储在NN节点的磁盘中,因为经常需要进行随机访问,或者是不断的被访问,还有要响应客户请求,效率必然很低,所 ...
- 探秘HDFS —— 发展历史、核心概念、架构、工作机制 (上)| 博文精选
戳蓝字"CSDN云计算"关注我们哦! 作者 | Mr-Bruce 转自 | CSDN博客 责编 | 阿秃 几周前,笔者做了一个与HDFS有关的技术分享,以知识普及为目的,主要分享 ...
- java io工作机制_深入分析Java I/O 工作机制
前言 : I/O 问题是Web 应用中所面临的主要问题之一.而且是任何编程语言都无法回避的问题,是整个人机交互的核心. java 的I/O类操作在java.io 包下,将近80个子类, 大概可以分成 ...
- android lmk机制,android LMK(low memory killer) 工作机制
Android Kernel 会定时执行一次检查,杀死一些进程,释放掉内存. 那么,如何来判断,那些进程是需要杀死的呢?答案就是我们的标题:Low memory killer机制. Low memor ...
- namenode和datanode工作机制_Hadoop的namenode的管理机制,工作机制和datanode的工作原理...
HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ...
- Hadoop生态圈(十三)- Namenode元数据管理及各组件工作机制
目录 前言 1. Namenode元数据管理 1.1 元数据是什么 1.2 元数据管理概述 1.2.1 内存元数据 1.2.2 磁盘元数据 1.2.2.1 fsimage内存镜像文件 1.2.2.2 ...
- NAMENODE工作机制,元数据管理(元数据存储机制、元数据手动查看)、元数据的checkpoint、元数据目录说明(来自学习资料)
NAMENODE工作机制 学习目标:理解namenode的工作机制尤其是元数据管理机制,以增强对HDFS工作原理的理解,及培养hadoop集群运营中"性能调优"."nam ...
- Hadoop大数据分布式文件系统hdfs的工作机制
HDFS集群分为两大角色:NameNode.DataNode NameNode负责管理整个文件系统的元数据 DataNode 负责管理用户的文件数据块 namenode工作机制 namenode职责: ...
- Secondary Namenode的Check point机制以及Namenode、Datanode工作机制说明
目录 前言: 1.NameNode的工作机制 2.DataNode的工作机制 3.Secondary Namenode的Check point机制 目录 前言: 在说明checkpoint机制之前,先 ...
最新文章
- linux下安装sbt_如何在Linux上安装SBT
- WF工作流开发回顾:介绍
- [2009.08.09]博客园北京俱乐部活动暨《博客园精华集:Web标准之道》现场签售通知...
- Yii的GridView
- 【ArcGIS风暴】ArcGIS10.6图斑椭球面积计算原理与方法
- 童年的飞秋大门已徐徐向我关闭
- ibatis3获得总记录数,同时计算数据分页?
- 设计模式——策略模式详解
- Linux设备驱动简析—PC重启源码分析
- 中了勒索病毒之后怎么办-亲身经历(2021.8)
- 大厂Sketch组件库源文件
- 如何下载飞思卡尔单片机的S19文件
- 用Python怎样实现Excel中的公式向下填充?
- 盘古搜索22日开通 欲打造一流搜索引擎
- 怎么做code review
- BES(恒玄) 平台 复杂按键 实现
- matlab rho是什么意思,rho(rho值是什么意思)
- 分布式系统学习共性总结:
- Java数据类型关于上标下标输入
- 腾讯ISUX:精益设计 “纸上谈兵”的说服力
热门文章
- LaTeX中的分式及被分式压缩的数学符号
- 手机文件管理ftp服务器,ftp工具手机版(ftp文件传输管理工具)V1.0.2 手机版
- FTP手机和PC互传文件
- PHP+Mysql—留言管理系统网站(前端+后端、整套源码)
- 双屏显示器,扩展显示,笔记本清晰,扩展显示屏模糊的解决办法
- matlab可视化界面怎么修改,matlab可视化界面
- 16 - 12 - 06 克鲁斯卡尔(Kruskal)算法详解
- HOOK 几种实现方式区别
- CANopen协议,上位机开发(C#)
- 史上最大数据泄露:维基解密公布CIA黑客兵工厂