【发布时间】:2016-01-21 11:31:13
【问题描述】:
我正在尝试 NN 元数据恢复。我已经备份了 Namenode 和 Journal 节点元数据。它包含编辑日志和 fsimages。
我的系统中有两个 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,但仍然失败。
两个 NN 都已关闭,我无法启动。我不想格式化 hdfs,因为它会更改集群 ID,并且备份将无法使用。
例外情况:
- 编辑日志中似乎存在间隙。我们期望 txid 71453,但得到 txid 71466
- 客户端试图将提交的 txid 从 71599 向后移动到 71453
- recoverUnfinalizedSegments 无法获取所需的日记帐。决定将日志同步到 startTxId: 71453 但记录器 10.204.64.26:8485 看到 txid 71599 已提交
【问题讨论】:
标签: hadoop