2012-03-15 168 views
5

场景1:恢复Hadoop NameNode失败

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

A)的NameNode守护程序崩溃: 解决方案: 刚刚重新启动的Namenode过程

B)主机关闭命名节点运行的位置。

解决方案:

  1. 与空dfs.name.dir
  2. 点dfs.name.dir到NFS挂载,我们有元数据的副本开始在不同的主机名称节点。 或
  3. 使用--importCheckpoint选项同时指出fs.checkpoint.dir后开始的NameNode从二级NameNode的
  4. 更改fs.default.name到备份主机名URI检查点目录并重新启动集群与所有的奴隶IP在从属文件中。

注 - 我们可能会错过上次检查点后可能发生的编辑。

方案2:

的HDFS的FsImage被写入一个目录中。

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

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

解决方案:

  1. 创建指向dfs.name.dir在目录中的一个空白目录(1)
  2. 启动的Namenode与-importCheckpoint指向fs.checkpoint.dir从二级目录设置检查点后NameNode的
  3. 更改fs.default.name到备份主机名URI并重新启动集群的所有从IP的奴隶文件。

这种方式,我们会再次错过最后一个检查点之后编辑的文件。

请让我知道,如果这是我们如何能够手动恢复集群。

+0

你可以编辑你的文章,包括一个正确的问题吗?我不确定你在问什么。如果您有它们,发布一些日志文件片段也会很有帮助。它会帮助我诊断你的问题。谢谢 – 2012-03-15 02:00:53

+0

我正在给一些生产场景。在情景1和情景2的情况下要做什么。为了获得不同的名称节点恢复技术 – Jagaran 2012-03-15 03:30:47

+0

现在改变了问题 – Jagaran 2012-03-15 03:51:45

回答

1

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

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

+0

在失败Namenode上执行hadoop namenode -recover选项有什么风险。 – 2016-07-26 07:27:08

+0

风险正在失去您要求恢复模式跳过的更改。这些可以是文件或目录创建的任何内容,也可以是访问时间更新等属性修改。 – 2016-08-07 22:19:36