0661-6.2.0-Hadoop数据备份与恢复

Fayson的github: https://github.com/fayson/cdhproject

推荐关注微信公众号:“Hadoop实操”,ID:gh_c4c535955d0f

1 文档编写目的

在Hadoop集群中,数据文件是以Block的方式存储在HDFS上,而HDFS上数据的名称,副本存储的地址等都是通过NameNode上的元数据来保存的。Hive的数据库和表的数据也是保存在HDFS中,而Hive的元数据metastore则保存在关系型数据库中。这些文件和数据如果丢失或者损坏,都会导致相应的服务不可用,Hadoop集群可以启用某些组件和服务的高可用或者备份,来应对可能出现数据损坏问题。但是在集群需要迁移,集群需要扩容或者缩容,或者其他情况,集群可能会面对数据安全风险的时候,我们可以通过主动备份这些数据,来保证数据安全。本文主要讲述如何备份NameNode元数据,如何备份MariaDB元数据库,如何备份HDFS中的数据,以及如何从这些备份中恢复。

  • 测试环境

1.RedHat7.2

2.CDH6.2.0

3.使用root进行操作

2 NameNode元数据

1.NameNode元数据备份

备份元数据之前,我们首先要确保元数据同步到集群最新的状态。

这里我们先进入安全模式,安全模式下会禁止HDFS的写操作。这样可以避免在保存元数据的时候,HDFS上进行数据的写操作,导致数据不一致的情况出现。

进入安全模式
[root@cdh01 ~]# sudo -u hdfs hdfs dfsadmin -safemode enter
保存最新的fsimage到磁盘并且重置edits
[root@cdh01 ~]# sudo -u hdfs hdfs dfsadmin -saveNamespace

在这里插入图片描述
我们把更新后的NameNode元数据信息复制到磁盘的其他位置,任意选择一个NameNode里面的文件复制就可以,这里新建一个目录nnbak,把数据复制到这里来

[root@cdh01 ~]# cp -r /dfs/nn/* ./nnbak/

在这里插入图片描述
现在我们已经备份成功。

2.NameNode元数据恢复

在恢复NameNode元数据之前,我们先来模拟NameNode故障的情况。

前面进入了安全模式,我们先退出安全模式。然后删除掉两个NameNode节点上的元数据,测试集群配置的目录地址都为/dfs/nn

退出安全模式

[root@cdh01 nnbak]# sudo -u hdfs hdfs dfsadmin -safemode leave

在这里插入图片描述

然后删除两个节点上的NameNode元数据。这里用移动到其他目录来代替。

[root@cdh01 nn]# mv ./current/ bak/
[root@cdh01 nn]# mv in_use.lock  bak/
[root@cdh02 nn]# mv current/ in_use.lock bak/

在这里插入图片描述

在这里插入图片描述

现在重启HDFS,是启动失败的。导致集群也不能正常运行。如下图
在这里插入图片描述
我们现在进行集群恢复,把刚才保存到目录nnbak里面的文件复制回去。

[root@cdh01 nnbak]# mv ./* /dfs/nn

在这里插入图片描述
把文件拷贝回去后,由于前面用cp命令复制了备份文件,导致属主改变成root了,现在还原所有文件的属组为hdfs,启动cdh01上的NameNode成功

[root@cdh01 nn]# chown hdfs:hdfs -R current/

在这里插入图片描述
在cdh02节点也同样移动cdh01的数据回/dfs/nn目录下,然后启动NameNode成功

在这里插入图片描述
接下来再点击启动集群按钮,把其他受影响的服务也都启动起来
在这里插入图片描述

集群启动成功。
在这里插入图片描述

简单查看一下HDFS,命令执行成功,验证完成

[root@cdh01 ~]# hadoop fs -ls /

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值