分析edits、fsimage、edits_inprogress、文件系统元数据维持原理,这一篇文章就够了~

本文较长的日志分析,运行分析,请耐心观看,仔细观看每一张图片中的文件后缀名

截图较小,请放大网页观看,快捷键ctrl+鼠标滚轮缩放网页大小

格式化集群,启动集群
此时的文件状态

执行了-put和-ls操作后关闭集群
此时的文件状态

再次开启集群时文件状态

现在执行一次滚动操作

现在的文件状态

效果不太明显 再传一份文件上去

现在的文件状态不变 所以我们执行一次滚动操作,查看文件状态

现在只是在滚动Edits文件,fsimage还没有进行合并
我们再滚动一次查看文件状态

现在要进行手动合并操作,这里合并失败了,原因是没有开启安全模式

这个安全模式:是hadoop自带的安全模式,相当于给hadoop部分文件上了一把锁,保证了合并数据的时候,数据的完整性。只有开启安全模式才可以执行手动合并操作,我们先看一下安全模式的状态

开启安全模式

我们再次执行手动合并

再次查看文件状态

我们看一下secondaryNameNode查看文件状态,发现人为滚动和合并的操作并没有存储在SNN,只有由SNN主动合并的edits和fsimage才存在该节点上,
建议不要进行手动合并和滚动日志的原因:如果NameNode Down掉了,SNN上是没有最新的镜像和日志的,不能将其作为恢复完全文件系统状态的根本

进行数据恢复的操作,将NameNode上的Name文件夹删除,再次之前,我们为了避免风险,将name文件夹上传至HDFS系统(须解除安全模式)


然后我们将name文件夹转移至~目录做两手保险,在做这步之前应当将集群停掉

而后开启集群会发现 我们的NameNode没有启动

然后我们进入secondaryNameNode节点将secondaryName拷贝至name原来的位置

Exit 回到 node101节点 将secondaryName改名为name,将name里面的.lock文件删除

关闭集群再启动集群
集群的所有进程正常启动,我们访问一下webUI
发现在刚才这段时间内创建的/home/bduser和传上去的name文件夹都不见了
原因:在secondaryNameNode中一直没有进行合并日志的操作,所以secondaryNameNode中的edits和fsimage文件还停留在我们进行第一次滚动日志之前的状态
下面的这张current文件夹的内容截图和上面最开始第二次启动集群的截图相同

所以这样做数据恢复是会有丢失的指的是滚动日志和手动合并的edits和fsimage文件,但如果我们在前面没有进行滚动日志和手动合并操作的话,一样还是会丢失一部分edits文件和edits_inprogress文件。

把集群停了之后把name删掉,把以前的name还原回来
查看edits和fsimage文件状态

在这里我觉得应该是少截了一张在将name文件删除之前的图,那张图应该是有名为edits_inprogress_000000000030的文件,这个文件里的日志是我们在进行更改name为SecoName之前的一系列操作,包括将name上传至集群等等,所以在这次还原后开启集群,之前的edits_inprogress_000000000030的文件滚动为edits_000000030-000000118,同时新建edits_inprogress_0000000000119,这个30-118文件和最新的fsimage00000000029会一起读到内存中呈现最新的文件系统
看webUI即可得知。

看一下seen_txid

看到这先停一下,思考如果现在的SecondaryNameNode做了一次chekpoint操作,文件状态应该是什么样的

这时我们进行一次手动合并试一下

大家一定会有这个疑惑,这次合并应该是edits_00030-edits000118,edits_inprogress000119
fsimage_00029合并为fsimage120啊 为什么会有122呢,原因其实很简单 我们看一下secondaryNameNode上的文件

得出结论,我们在这次手动合并之前,secondaryNameNode已经进行了一次chkpoint操作
当secondaryNamenode进行完chkpoint操作之后,NameNode的文件状况应当是
( editsxxx-xxx
editsxxx-xxx
edits119-120
exits_inprogress_000121
fsimage120)
,所以我们这次手动合并的文件会是fsimage_120,edits_000121,所以才会有以下的结果
(执行手动合并,edits_inprogress000121将滚动更名为edits_000122)

大数据学习之hadoop——09一次完整的edits、fsimage、edits_inprogress、chkpoint、NameNode运行原理分析相关推荐

  1. 大数据学习之hadoop——07阿里云服务器搭建集群以及遇到的问题解决办法

    在这段服务器搭建伪分布集群中我遇到了如下问题 1.进入远程连接界面却不知道密码 2.使用MobaXtem工具连接服务器失败 3.集群格式化失败 4.web访问失败 按照下面的所有步骤操作.以上的问题都 ...

  2. 2021-12-30大数据学习日志——Hadoop离线阶段——HDFS

    学习目标 理解分布式文件存储的概念与实现 掌握HDFS分块存储.副本机制等特性 学会shell操作HDFS 掌握HDFS读写流程 理解NameNode元数据管理机制 理解SecondaryNameNo ...

  3. 大数据学习之Hadoop生态圈(一)

    文章目录 前言 1.什么是hadoop 2.Hadoop起源 3.Hadoop的四大特点 4.Hadoop的三大发行版本 5.Hadoop的版本迭代 6.Hadoop的优点及缺点 7.Hadoop组成 ...

  4. 大数据学习1 - hadoop环境搭建及操作

    目录 目录 目录 一.什么是大数据? 二.什么是hadoop? 1.Hadoop核心组件 2.HDFS架构 3.MapReduce 3.Yarn架构 ​编辑 三.Hadoop的集群模式 1.完全分布模 ...

  5. 大数据学习笔记-hadoop(1)

    目录 前言 一.什么是大数据? 二.Ubuntu基础配置 1.安装Ubuntu20.04 2.修改系统语言为中文 3.修复vi编辑器 4.使用root账户 5.网络配置 6.配置源 7.更新 三.ss ...

  6. 大数据学习心得--hadoop框架

    前言 这是本人第一次写博客,技术不够,不敢妄谈一些太过前沿的技术的东西,想简单写写自己学过的东西,就当温故而知新了.本篇便以hadoop框架为主题来写点东西.众所周知,hadoop框架出现已久,had ...

  7. hadoop jar包_【大数据学习】Hadoop的MR分布式开发小实战

    前提:hadoop集群应部署完毕. 一.实战科目 做一个Map Reduce分布式开发,开发内容为统计文件中的单词出现次数. 二.战前准备 1.本人在本地创建了一个用于执行MR的的文件,文件中有209 ...

  8. 大数据学习之一——Hadoop单机部署

    1 背景 由于我本人服务器有限,因此尝试进行单机安装,主要为了学习使用. 2 前提 hadoop安装依赖JDK. 我这里尝试用下JDK18看看. 下载地址:https://jdk.java.net/1 ...

  9. 大数据学习之Hadoop任务输出到多个目录中

    有可能使 Hadoop 任务输出到多个目录中吗?如果可以的话,怎么做? 1)可以输出到多个目录中,采用自定义OutputFormat. 2)实现步骤: (1)自定义outputformat, (2)改 ...

  10. 大数据开发学习,大数据学习路线(完整详细版)

    很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:199427210,有大量干货(零 ...

最新文章

  1. shell学习之shell执行方式及排错
  2. tcp/ip 协议栈Linux源码分析一 IPv4分片报文重组分析一
  3. 速达财务3000服务器账套维护显示,速达3000财务软件使用常见问题
  4. 一文读懂生成对抗网络(GANs)
  5. FastCGI - How to run fastcgi and nginx on windows
  6. 【LeetCode】智商题 brainteaser(共3题)
  7. DevOps on DevCloud|代码检查服务如何降低“Billion Dollar Mistake” NPE风险
  8. [转]angular2之@Output() EventEmitter
  9. 熔断器 java_SpringCloud之熔断器Hystrix的实现
  10. MFCC和语谱图的关系
  11. 服务都微了,编排怎么整?
  12. 21条黄金法则,全面提升你的领导力
  13. UVM-phase机制
  14. 企业级技术与大数据BI——节选自专著《Big Data Fundamentals: Concepts, Drivers Techniques》
  15. win7查看隐藏文件夹
  16. 你还不了解的OKRs-E是什么?
  17. bat创建桌面快捷方式,并用浏览器打开网页
  18. 可以安心过中秋了!黎曼猜想亡不了区块链!
  19. 微分电路与积分电路分析
  20. Visual Studio 2017十五项新功能体验

热门文章

  1. 【练习】多表查询练习
  2. 一文详解GATK-HaplotypeCaller 变异检测原理和实战
  3. cad断点快捷键_cad打断快捷键(cad十字路口路口怎么画)
  4. Python 基础变量声明
  5. 我是高管,空降的第60天,被辞职了,惨惨惨
  6. 【unity3d】复刻死亡之书自动设置摄像机景深
  7. idea配置port
  8. 【统计学笔记】方差分析表和回归分析表的解读
  9. HttpClient模拟请求
  10. 局域网考勤python_Python pyftpdlib 实现局域网文件互传