如何备份恢复HDFS元数据-逻辑级备份?
- By : Will
- Category : Cloudera-Hadoop
- Tags: Backing Up, Backup, data, HDFS, Restoring

1 基础知识
1.1 备份命令的简介
– 备份命令用于防止所有名称节点都不可用的情况下可还原名称节点数据
– “hdfs dfsadmin -fetchImage”命令支持不停机的情况下备份HDFS的名称节点元数据
– 该命令的本质是备份当前名称节点的“fsimage*”文件(一般存于“/data/dfs/nn/current/”目录)
1.2 备份命令的工作原理
– 该命令读取并导出当前名称节点的“fsimage”文件的内存提交
另外,需要注意的是,
– 如果Journal节点已启用并正在运行且存在编辑文件,则“fsimage”包含此编辑文件
– 如果Journal节点没有启用,则可能丢失过渡期间的任何传输数据
1.3 备份的还原条件
– 恢复需要确保恢复的名称节点与原始的名称节点主机名称相同(某种情况下可能需要IP相同)
– 该命令需要事先手动备份名称节点数据目录的“VERSION”文件(一般存于“/data/dfs/nn/current/”目录)
– 该命令还原数据需要手动复制“VERSION”和“fsimage”文件至名称节点的数据目录(一般存于“/data/dfs/nn/current/”目录)
注:“VERSION”文件只需备份一次(一般不会改变,文件包含重要的集群ID以及其他详细信息)
2 最佳实践
2.1 备份名称节点元数据
2.1.1 备份“VERSION”文件
cd /data/dfs/nn/current/ tar -cvf /backup/nn_backup_version.tar VERSION
注:备份目录请自行准备
2.1.2 备份“fsimage”文件
hdfs dfsadmin -fetchImage /backup
然后,你可以用如下命令确认备份的文件,
ls /backup
可见如下备份数据,
fsimage_0000000000000029782 nn_backup_version.tar
2.2 恢复名称节点元数据
2.2.1 删除HDFS的角色
删除以下角色,
– NameNode
– JournalNode
– Failover Controller
假设,我们清理如下角色数据,
– hd[03-05].cmdschool.org <—> HDFS JournalNode
– hd[01-02].cmdschool.org <—> HDFS NameNode HDFS Failover Controller
如果底层的数据与备份的不一致,建议你清理名称节点的目录,
In hd[01-02].cmdschool.org,
rm -rf /data/dfs/nn/
另外,如果恢复节点有第二名称节点目录,也需要清除,
rm -rf /data/dfs/snn/
2.2.2 恢复主节点和第二名称节点角色
– 恢复名称主节点角色(请不要启动,即恢复hd01.cmdschool.org的HDFS NameNode角色)
– 恢复第二名称节点角色(请不要启动,即恢复hd02.cmdschool.org的HDFS SecondaryNameNode角色)
– 确保新的名称节点主机名称(某种情况下可能需要IP相同)与原名称节点一致
– 新主机上部署名称节点角色(请不要启动角色)
2.2.3 创建名称节点的目录
mkdir -p /data/dfs/nn/current
2.2.4 恢复“VERSION”文件
cd /data/dfs/nn/current/ tar -xf /backup/nn_backup_version.tar
2.2.5 恢复fsimage文件
cd /data/dfs/nn/current/ cp /backup/fsimage* .
“fsimage”复制到当前目录后,你还需要生成该文件的md5校验文件,
md5sum `ls fsimage*` > `ls fsimage*`".md5"
2.2.6 修改数据目录的权限
chown hdfs:hadoop /data/dfs/nn chown hdfs:hdfs -R /data/dfs/nn/current/ ls -l /data/dfs/nn/current/
文件显示如下,
total 116
-rw-r--r-- 1 hdfs hdfs 106959 Nov 22 22:38 fsimage_0000000000000030202 -rw-r--r-- 1 hdfs hdfs 62 Nov 22 22:41 fsimage_0000000000000030202.md5 -rw-r--r-- 1 hdfs hdfs 170 Nov 22 16:53 VERSION
2.2.7 手动启动节点角色
– 启动名称主节点角色
– 启动第二名称节点角色
– 启动所有数据节点
2.2.8 恢复HDFS集群的HA角色
– 由于不是本章重点,这里不再详述
参阅文档
===========
https://docs.cloudera.com/documentation/enterprise/5-10-x/topics/cm_mc_nn_metadata_backup.html
没有评论