HDFS元数据损坏恢复方法

南墨11个月前技术文章399

HDFS JournalNode 编辑目录(dfs.journalnode.edits.dir)下数据损坏(单节点损坏或所有节点数据损坏),如何恢复 HDFS

单节点损坏

a)      停止HDFS服务。

b)      确认editlog没有损坏的JournalNode

JournalNode的运行日志中无java.io.IOException: Can't scan a pre-transactional edit log错误日志,则为editlog没有损坏。

c)       拷贝正常JournalNode上的editlog到损坏的JournalNode节点上。

d)      查看dfs.journalnode.edits.dir的值,获取JournalNodeeditlog的存储目录

e)      备份editlog损坏的JournalNode节点上的editlog

f)       拷贝正常节点的editlog到异常节点。

g)      在异常节点修改拷贝后的文件属组。

h)      重启HDFS服务,启动成功。

所有节点损坏:

a)      找到重启前的主NameNode,进入其数据目录(查看配置项“dfs.namenode.name.dir”可获取),得到最新的FSImage文件的序号。一般如下:

1.png

b)      查看各JournalNode的数据目录(查看配置项“dfs.journalnode.edits.dir”可获取),查看序号从第一部获取到的序号开始的edits文件,看是否有不连续的情况(即前一个edits文件的最后一个序号 后一个edits文件的第一个序号 不是连续的,如下图中的edits_0000000000013259231-0000000000013259237就和后一个edits_0000000000013259239-0000000000013259246就是不连续的)。

2.png

c)       如果有这种不连续的edits文件,则需要查看其它的JournalNode的数据目录或NameNode数据目录中,有没有连续的该序号相关的连续的edits文件。

d)      如果找不到连续的edits文件,需要查看fsimage文件后的编号后的editslog文件是否连续,如连续则说明丢失的未合并部分的数据(数据较新),如以合并则需要恢复至上一个fsimage周期,此周期后的数据需要重新入

3.png

 


相关文章

PG的多版本并发控制(一)

PG的多版本并发控制(一)

一、 表系统字段几个比较重要概念1.1  tupletuple表示表中的数据行,在MySQL中用row表示。在表数据页中,主要分为普通的数据元祖和TOAST元祖。以下是一个普通数据元祖的结构,主要由三...

 MySQL运维实战之Clone插件(10.1)使用Clone插件

MySQL运维实战之Clone插件(10.1)使用Clone插件

clone插件介绍mysql 8.0.17版本引入了clone插件。使用clone插件可以对本地l或远程的mysql实例进行clone操作。clone插件会拷贝innodb存储引擎表,clone得到的...

keycloak高可用部署

keycloak高可用部署

添加keycloak应用rancher应用商店模式添加keycloak仓库地址rancher应用商店添加bitnami的helm仓库地址https://charts.bitnami.com/bitna...

Centos系统支持TLS 1.3

Centos系统支持TLS 1.3

一、背景1、生产的 CentOS 7 服务器需要启用 TLS 1.32、Openssl介绍OpenSSL 是用于传输层安全性 (TLS) 和安全套接字层 (SSL) 协议的强大、商业级且功能齐全的工具...

大数据自动化巡检系统EasyCare使用简介

大数据自动化巡检系统EasyCare使用简介

1、EasyCare登录填写系统初始化用户密码之后登录系统,进入系统首页2、系统首页系统首页显示当前巡检的集群数量,巡检指标,巡检模版,当天巡检情况等3、配置管理配置管理菜单配置初始化巡检基础信息,包...

数据湖技术之iceberg(五)Hive与Iceberg整合

数据湖技术之iceberg(五)Hive与Iceberg整合

1.  版本支持约束条件Iceberg就是一种表格式,支持使用Hive对Iceberg进行读写操作,但是对Hive的版本有要求,如下:Iceberg 与 Hive 2.x 和 Hive 3....

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。