HDFS元数据损坏恢复方法

南墨2年前技术文章1438

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

 


相关文章

REPMGR-PG高可用搭建(三)

REPMGR-PG高可用搭建(三)

2.2.2repmgr安装兼容性3节点均安装repmgr1.安装依赖 # yum install flex 2.下载解压 # wget -c https://repmgr.org/downloa...

MySQL运维实战(5.1) 字符和编码的基本概念

MySQL运维实战(5.1) 字符和编码的基本概念

字符和编码字符字符是符号,是人们用于交流的各类符号,如26个英文字母、汉字、标点符号、数学运算符、其他语言的字母和符号。编码编码是计算机中以二进制方式存储字符的方式。字符集字符集是字符和编码的映射表。...

解决grafana服务无法停止问题

解决grafana服务无法停止问题

背景:grafana服务无法停止,无论使用什么方式,哪怕使用kill -9 ,杀掉进程都会重新启动解决办法:1、将grafana加到系统服务里去systemctl enable grafana.ser...

Redis 命令行 redis-cli 介绍

前言redis-cli 是 Redis 自带的命令行工具,是运维和开发人员常用的工具,本篇文章将介绍它的使用技巧和一些有趣的功能。1. 连接 Redis 服务redis-cli 默认连接的是 127....

Windows自带性能监控工具Perfmon使用介绍

Windows自带性能监控工具Perfmon使用介绍

一、Perfmon简介Perfmon(Performance Monitor)是一款Windows自带的性能监控工具,提供了图表化的系统性能实时监视器、性能日志和警报管理。通过添加性能计数器(Perf...

开源大数据集群部署(十九)Hbase部署

开源大数据集群部署(十九)Hbase部署

2.8 HBASE 安装部署hbase组件部署主机HMasterhd1.dtstack.comhd2.dtstack.comHRegionServerhd3.dtstack.com,hd2.dtsta...

发表评论    

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