恢复Hadoop NameNode失败

Jag*_*ran 5 hadoop hdfs cloudera

场景1:

HDFS fsimage和editlog写入多个位置,包括NFS挂载.

A)NameNode守护程序崩溃:解决方案:只需重新启动Namenode进程

B)运行名称节点的主机已关闭.

解:

  1. 在具有空dfs.name.dir的其他主机中启动namenode
  2. 将dfs.name.dir指向我们拥有元数据副本的NFS挂载.要么
  3. 在将fs.checkpoint.dir指向Secondary NameNode的检查点目录后启动namenode时使用--importCheckpoint选项
  4. 将fs.default.name更改为备份主机名URI,并使用从属文件中的所有从属IP重新启动群集.

注意 - 我们可能会错过最后一个检查点之后可能发生的编辑.

场景2:

HDFS fsimage写入单个目录.

A)NameNode守护进程崩溃:解决方案:未知

B)主机已关闭运行名称节点的位置.

解:

  1. 创建一个空白目录,指向dfs.name.dir到(1)中的目录
  2. 将fs.checkpoint.dir指向Secondary NameNode的checkpoint目录后,使用-importCheckpoint启动Namenode
  3. 将fs.default.name更改为备份主机名URI,并使用从属文件中的所有从属IP重新启动群集.

这样我们将再次错过在最后一个检查点之后编辑的文件.

如果我们可以手动恢复群集,请告诉我.

Har*_*h J 1

在生产中,您应该以 HA 模式运行 NameNode,并使用一定数量的日志节点或用于编辑日志事务文件的共享HA-NFS 存储。如果您不想或不使用 HA,则需要使用至少两个存储目录来运行 NN,用于存储图像和编辑日志,最好将其中一个作为软挂载的 NFS 挂载点,以实现名称系统的自动离机持久性。

如果您只有一个存储目录并且没有 HA 配置,那么您可以获得的最好结果就是过去一段时间的检查点 - 如果您丢失了所有文件。如果您没有丢失文件,您可以尝试本文hadoop namenode -recover所示的选项,以便能够恢复图像以及一些(或全部)编辑。