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