1.先看宕机后的损失如何,如果是内存中的数据丢失,但磁盘数据还在,可以将secondary namenode的工作目录copy到namenode的工作目录中,恢复上一次checkpoint的数据,这样可以恢复大部分数据,但不能恢复所有数据,因为有些数据还没做checkpoint。
2.也可以设置namenode的工作目录在多块磁盘上,那么edits日志文件就会同时写在多块磁盘上,如果一个磁盘坏了,那另一块磁盘上仍保存着数据。这两个磁盘是可以并发的,磁盘IO不会起冲突。
3.最终解决方案是在建立集群初期的时候建立NameNode HA高可用模式。