2017-06-05 213 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