更新时间:2024-07-24 GMT+08:00
为什么NameNode UI上显示有一些块缺失
问题
回滚成功后,为什么NameNode UI上显示有一些块缺失?
回答
原因:具有新id/genstamps的块可能存在于DataNode上。DataNode中的块文件可能具有与NameNode的回滚image中不同的生成标记和长度,所以NameNode会拒绝DataNode中的这些块,并将文件标记为已损坏。
场景如下:
- 升级前:
客户端A - >将一些数据写入文件X(假设已写入“A”字节)
- 升级过程中:
客户端A - >仍然将数据写入文件X(现在文件中的数据是“A + B”字节)
- 升级完成:
客户端A - >完成写入文件。最终数据为“A + B”字节。
- 回滚开始:
将回滚到步骤1(升级前)的状态。因此,NameNode中的文件X将具有“A”字节,但DataNode中的块文件将具有“A + B”字节。
恢复步骤:
父主题: HDFS常见问题