Hadoop元数据备份与恢复方案
标签(空格分隔): Hadoop
Namenode
备份策略:
周期性备份namenode、standby namenode的dfs.namenode.name.dir
因为主从切换可能导致edits log分散在两台机器上,需要两台机器共同提供完整的edits log
恢复步骤:
1,删除journalnode数据文件,启动服务(所有jn均执行)
2,登陆namenode
3,下载最新的备份文件
4,解压,移至dfs.namenode.name.dir
5,执行hdfs namenode –initializeSharedEdits(hdfs namenode -initializeSharedEdits will initialize the shared edits directory with the edits data from the local NameNode edits directories)
6,启动zkfc
7,启动namenode
8,登陆standby namenode
9,执行hdfs namenode -bootstrapStandby(The bootstrapStandby command will download the most recent fsimage from the active NameNode into the $dfs.name.dir directory of the standby NameNode.)
10,启动zkfc
11,启动namenode
适用场景:
namenode、standby namenode全部故障
如果只是一台namenode故障,可以清空name文件夹,执行hdfs namenode -bootstrapStandby
Journalnode
备份策略:
无
恢复方法:
从正常的jn节点拷贝数据,启动,即可。
无需停止正常节点再拷贝,直接拷贝即可。这样拷贝会有部分缺失数据,故障节点启动后,不会补齐这些缺失数据,但不影响新数据的写入。对于缺失的edits,只要有一台机器上有,namenode就可以启动。
适用场景:
单个节点故障
Zookeeper
备份策略:
周期性备份
< dataDir >/version-2/acceptedEpoch
< dataDir >/version-2/currentEpoch
< dataDir >/version-2/snapshot.
< dataLogDir >/version-2/log.
其中snapshot、log备份最近的几份就行
恢复步骤:
1,登陆一台zookeeper服务器
2,下载最新的备份文件
3,解压,将data、datalog移至< dataDir>,并创建data/myid文件(与配置文件一致)
启动服务
4,其余节点配置data/myid文件,启动即可
适用场景:
部分或全部数据丢失
如果只是单个节点故障,清空故障节点的data、datalog文件夹,启动后会自动从正常节点复制数据,无需人工恢复