恢复Hadoop NameNode失败

时间:2012-03-15 00:00:18

标签: hadoop hdfs cloudera

情景1:

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

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

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

解决方案:

  1. 使用空dfs.name.dir
  2. 在其他主机中启动namenode
  3. 将dfs.name.dir指向我们拥有元数据副本的NFS挂载。 OR
  4. 在将fs.checkpoint.dir指向Secondary NameNode的检查点目录后启动namenode时使用--importCheckpoint选项
  5. 将fs.default.name更改为备份主机名URI,并使用从属文件中的所有从属IP重新启动群集。
  6. 注意 - 我们可能会错过最后一个检查点之后可能发生的编辑。

    情景2:

    HDFS fsimage被写入一个目录。

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

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

    解决方案:

    1. 创建一个指向dfs.name.dir的空白目录到(1)
    2. 中的目录
    3. 将fs.checkpoint.dir指向Secondary NameNode的检查点目录后,使用-importCheckpoint启动Namenode
    4. 将fs.default.name更改为备份主机名URI,并使用从属文件中的所有从属IP重新启动群集。
    5. 这样我们就会再次错过在最后一个检查点之后编辑的文件。

      如果我们可以手动恢复群集,请告知我们。

1 个答案:

答案 0 :(得分:1)

在生产中,您应该以HA模式运行名称节点,其中quorum of journalling nodes或共享HA-NFS storage用于编辑日志事务文件。如果您不想要或不使用HA,则需要为至少两个存储目录运行NN以用于映像和编辑日志,最好使用一个作为软安装的NFS挂载点,用于名称系统的自动脱机持久性

如果您只有一个存储目录而没有HA配置,那么您可以获得的最好的是过期检查点 - 如果您丢失了所有文件。如果您没有丢失文件,可以尝试使用此post所示的hadoop namenode -recover选项,以便能够恢复图像以及一些(或所有)编辑。