我正在使用 CentOS 9 和 Hadoop 3.1.1 在我的个人机器上构建 Hadoop 伪集群。我完成了hadoop的安装并进行了一些操作,一切都很好。后来,当我执行 jps 时,我的 namenode 守护进程没有运行。因此,根据谷歌搜索的指南,我删除了 namenode 和 datanode 目录,重新创建了它们并执行了“hadoop namenode -format”,然后我的 namenode(以及 datanode)守护进程启动并运行。但我无法使用“hdfs dfs -ls”获取存储在 hdfs 中的任何数据,该命令用于在格式化名称节点之前获取数据。
据我所知,格式化 namenode 会在 namenode VERSION 文件中创建新的命名空间 ID 和集群 ID,因此我们无法从 hdfs 获取旧数据。
我也想知道如何恢复数据。
我尝试了以下但不起作用。
- 将 clusterID 值从 datanode VERSION 文件替换为 namenode VERSION 文件,假设 datanode 将发送心跳并报告给 namenode,从而 namenode 将构建元数据。但这没有帮助。
请问有恢复数据的建议吗?
答案1
您可能无法恢复数据。
正如你所说:
我删除了 namenode 和 datanode 目录,重新创建了它们并执行了“hadoop namenode -format”
基本上你:
- 从namenode目录中清除元数据(数据存储位置的信息)
- 清除存储在 datanode 目录中的实际数据
- 创建了新的命名空间 ID
更多相关内容https://stackoverflow.com/questions/27143409/what-the-command-hadoop-namenode-format-will-do