场景一:
HDFS fsimage 和 editlog 被写入多个位置,包括 NFS 挂载。
A) NameNode Daemon Crash : 解决方法:重启Namenode进程即可
B) 主机在名称节点运行的地方关闭。
解决方案:
- 使用空的 dfs.name.dir 在不同的主机中启动名称节点
- 将 dfs.name.dir 指向我们拥有元数据副本的 NFS 挂载。或者
- 在将 fs.checkpoint.dir 指向辅助 NameNode 的检查点目录后,在启动 namenode 时使用 --importCheckpoint 选项
- 将 fs.default.name 更改为备份主机名 URI,并使用 slaves 文件中的所有从 IP 重新启动集群。
注意 - 我们可能会错过在最后一个检查点之后可能发生的编辑。
场景二:
HDFS fsimage 被写入单个目录。
A)NameNode 守护进程崩溃:解决方案:未知
B ) 主机在名称节点运行的地方关闭。
解决方案:
- 创建一个指向 dfs.name.dir 的空白目录到 (1) 中的目录
- 在将 fs.checkpoint.dir 从 Secondary NameNode 指向检查点目录后,使用 -importCheckpoint 启动 Namenode
- 将 fs.default.name 更改为备份主机名 URI,并使用 slaves 文件中的所有从 IP 重新启动集群。
这样我们会再次错过在最后一个检查点之后编辑的文件。
请让我知道这是否是我们可以手动恢复集群的方式。