2017-06-05 209 views
0

我的namenode服务器在本周末遭到黑客攻击,/ usr/local/hadoop目录不再存在。是否仍可以恢复存储在HDFS上的文件? Datanodes是可访问的,每个都包含层次blk _ {...}数据中的某个地方。删除namenode后从HDFS恢复文件

回答

2

如果您没有名称dir的任何复制/备份,恢复数据将是一项相当困难的任务。 datanode不知道任何文件的概念,只有块。所有数据都存在于这些块中,但您必须手动重建块中的文件。如果你有一些重要性非常高的特定文件,并且没有那么多的数据,你可以通过块来筛选你想要找的东西,但我没有意识到比这更好的东西。

这就是为什么有多种方式来冗余地存储命名空间的多个拷贝,例如,通过在dfs.namenode.name.dir属性中指定多个目录,并使用辅助或备用Namenode(请参阅https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html#Secondary_NameNode),它们充当存储名称空间副本的远程位置。

+0

感谢您的帮助@krog!如果我有名字dir的副本,你能告诉我该怎么做吗?我无法启动hadoop集群,但可以看到名称dir(在我的配置中位于/ opt/hadoop/hadoop_data/hdfs/namenode/current):edits _...和fsimage _...文件的内容。 – Patrick

+0

@Patrick你能更具体地了解被删除的内容吗?/usr/local/hadoop的内容是什么? – krog

+0

事实上,我的服务器(在云上)被我的主机置于救援模式,因为它已被黑客入侵,但IT部门在对防火墙进行了一些更改后,能够以正常模式重新启动服务器。现在一切都好。再次感谢您的帮助@krog,非常感谢。 – Patrick