我正在尝试NN元数据恢复。我已经备份了Namenode和Journal节点元数据。它包含编辑日志和fsimages。从元数据备份中恢复Hadoop NameNode
我的系统中有两个NN。我以常规频率备份两个NN(hdfs元数据& QJM元数据)上的元数据。我想在最坏的情况下测试恢复过程。假设NN和Journal节点都处于关闭状态,且元数据已完全删除。
我想从备份中恢复NN元数据并启动NN。我知道可能会有数据丢失,因为备份后所做的最新更改将会丢失。
问题:
- 你认为这种情况是可能/可行?
- 我正面临一些与txn id不匹配有关的问题,提交txn id。请告诉我们是否有相同的解决方案。
步骤尝试:
- NN和QJM的取元数据备份。做一些hdfs文件操作 (创建新文件)。
- 在这两台机器上停止NN和Journal节点。
- 从/ data/hdfs和日志目录中删除元数据。
- 从备份中恢复Fsimages(一段时间后恢复)。
- 启动NN。它以下面的例外失败。
替代方法:将所有编辑日志和fsimage恢复到hdfs和qjm目录并启动NN,但仍然失败。
这两个神经网络都关闭了,我无法提出。我不想格式化hdfs,因为它会更改群集ID,并且备份将不可用。
例外:
- 有似乎是在编辑日志的间隔。我们预计txid 71453,但得到txid 71466
- 客户端尝试将提交的txid从71599向后移动到71453
- recoverUnfinalizedSegments对所需日志失败。决定将日志同步到startTxId:71453但记录器10.204.64.26:8485已经看到txid 71599落实