HDFS镜像文件fsimage和编辑日志文件edits

镜像文件和编辑日志文件

1)概念

namenode被格式化之后,将在/opt/module/hadoop-2.7.2/data/tmp/dfs/name/current目录中产生如下文件

edits_0000000000000000000
fsimage_0000000000000000000.md5
seen_txid
VERSION

(1)Fsimage文件:HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目录和文件inode的序列化信息(id、类型、目录、所属用户、用户权限、时间戳……)。

(2)Edits文件:存放HDFS文件系统的所有更新操作的路径,文件系统客户端执行的所有写操作首先会被记录到edits文件中。

(3)seen_txid文件保存的是一个数字,就是最后一个edits_的数字

(4)每次Namenode启动的时候都会将fsimage文件读入内存,并从00001开始到seen_txid中记录的数字依次执行每个edits里面的更新操作,保证内存中的元数据信息是最新的、同步的,可以看成Namenode启动的时候就将fsimage和edits文件进行了合并。

2)oiv查看fsimage文件

(1)查看oiv和oev命令

[[email protected] current]$ hdfs
oiv                  apply the offline fsimage viewer to an fsimage
oev                  apply the offline edits viewer to an edits file

(2)基本语法

hdfs oiv -p 文件类型 -i 镜像文件 -o 转换后文件输出路径

(3)案例实操

[[email protected] current]$ pwd
/opt/module/hadoop-2.7.2/data/tmp/dfs/name/current 

[[email protected] current]$ hdfs oiv -p XML -i fsimage_0000000000000000025 -o /opt/module/hadoop-2.7.2/fsimage.xml 

[[email protected] current]$ cat /opt/module/hadoop-2.7.2/fsimage.xml

将显示的xml文件内容拷贝到eclipse中创建的xml文件中,并格式化。

3)oev查看edits文件

(1)基本语法

hdfs oev -p 文件类型 -i 编辑日志 -o 转换后文件输出路径

(2)案例实操

[[email protected] current]$ hdfs oev -p XML -i edits_0000000000000000012-0000000000000000013 -o /opt/module/hadoop-2.7.2/edits.xml
[[email protected] current]$ cat /opt/module/hadoop-2.7.2/edits.xml

将显示的xml文件内容拷贝到eclipse中创建的xml文件中,并格式化。

滚动编辑日志

正常情况HDFS文件系统有更新操作时,就会滚动编辑日志。也可以用命令强制滚动编辑日志。

1)滚动编辑日志(前提必须启动集群)

[[email protected] current]$ hdfs dfsadmin -rollEdits

2)镜像文件什么时候产生

Namenode启动时加载镜像文件和编辑日志

原文地址:https://www.cnblogs.com/MWCloud/p/11215431.html

时间: 2024-11-01 23:32:59

HDFS镜像文件fsimage和编辑日志文件edits的相关文章

数据库镜像中成功收缩事务日志文件 (转载)

数据库镜像中成功收缩事务日志文件 数据库已经运行在数据库镜像的时候怎么收缩事务日志文件呢?? 我们有一个产品数据库发现事务日志文件已经到到了60GB,而数据库本身才30GB.需要收缩事务日志文件. 经过一个礼拜的观察,平均没有有1.5GB的日志,99%的日志是在晚上产生的,周末有16GB的日志,看来大部分是非工作时间批处理产生的. 我觉得收缩日志文件,怎么做呢??google来半天也没什么好的办法,大部分说是要切换到simple模式,重新构建数据库镜像数据库.这对产品环境影响比较大. 只有自己摸

重做日志文件组和重做日志文件组成员的管理

一.重做日志文件组: 1.添加重做日志组的指令: alter database [数据库名称] add logfile[group 正整数] 文件名称 [,[group 正整数]文件名称]] 不是有group选项时oracle系统会自动在当前最大的组号上加1来产生新的组号 ex:alter database add logfile ('D:\REDO04.LOG','D:\REDO05.LOG') size 15m; 增加新的重做日志组并且添加两个重做日志成员,大小设置为15M 2.删除重做日志

SQL Server日志文件过大 大日志文件清理方法 不分离数据库

SQL Server日志文件过大    大日志文件清理方法 ,网上提供了很多分离数据库--〉删除日志文件-〉附加数据库 的方法,此方法风险太大,过程也比较久,有时候也会出现分离不成功的现象.下面的方式是不需要做数据库分离和附加操作的. SQL 2008收缩清空日志方法: 1.在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完整模式,一定必务要再改回完整模式,不然数据库就不支持时间点备份了.1).选择数据库–属性-选项-恢复模式–选择简单.2).收缩数据库后,再调回完整.2

浅析Linux文件(二)日志文件详解

日志的功能 用于记录系统.程序运行中发生的各种事件 通过阅读日志,有助于诊断和解决系统故障 日志文件的分类 内核及系统日志:由系统服务syslog统一 进行管理,日志格式基本相似 用户日志:记录系统用户登录及退出系统的相关信息 程序日志:由各种应用程序独立管理的日志文件,记录格式不统一 日志保存位置 默认位于:/var/log目录下 主要日志文件介绍 日志文件类型 日志文件目录 内核及公共消息日志 /var/log/messages 计划任务日志 /var/log/cron 系统引导日志 /va

人工误删除InnoDB ibdata数据文件与ib_logile重做日志文件如何恢复详细过程

有人因为不熟悉InnoDB引擎,而误删除innoDB ibdata(数据文件)和ib_logfile(redo log重做事务日志文件),结果导致了悲剧的发生.如果有做主从复制同步那还好,如果是单机呢?如何恢复? 1)使用rm –f ib* 删除数据文件和重做日志文件 下面就来使用具体看看如何恢复. 若此时你发现数据库还可以正常工作,数据照样可以写入,切记,这时千万别把mysqld进程杀死,否则没法挽救. 先找到mysqld的进程pid,如下所示. mysql01:/data/mysql3306

Hadoop HDFS源码分析 读取命名空间镜像和编辑日志数据

读取命名空间镜像和编辑日志数据 1.读取命名空间镜像 类FSImage是 命名空间镜像的java实现,在源码中,英文注释为, /** * FSImage handles checkpointing and logging of the namespace edits. * */ FSImage.loadFSImage(FSNamesystem, StartupOption, MetaRecoveryContext) 读取命名空间镜像. 1 private boolean loadFSImage(

rsync采集二进制日志文件

本日志转载请注明出处,否则将追究责任! rsync简介 rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输.rsync中一项与其他大部分类似程序或协议中所未见的重要特性是镜像对每个目标只需要一次发送.rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝. 在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输协议或者通过远程shell如RSH或者SSH伺服文件.需要备份的终端为

day10_日志文件

日志完全性: 归档日志: 日志镜像: 日志文件: (1)在线日志文件记录所有数据变化信息 利用日志文件快速写功能提升数据库写入性能(写100W行数据,写磁盘要10分钟,写日志只要1分钟,库认为日志写完了,数据就写完了.) (2)为实例失败与介质失败提供恢复机制 日志建立的2种方式(库中什么时候产生日志): 1.按物理条件:只要块发生变化,就把块记录到日志中(记录内容多,还原速度快) 2.逻辑操作:操作动作,你做了哪些操作动作(记录的少,还原慢) oracle是怎么记录的?监控块变化,记录块上的操

【恢复】Redo日志文件丢失的恢复

第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢失据的风险,强烈建议在条件允许的情况下,对Redo日志进行多路镜像.需要注意的是,RMAN不能备份联机Redo日志文件.所以,联机Redo日志一旦出现故障,则只能进行清除日志了.清除日志文件即表明可以重用该文件. 1.1.1  数据库归档/非归档模式下inactive redo异常ORA-00316