Java Hadoop单节点群集HDFS恢复

Java Hadoop单节点群集HDFS恢复,java,hadoop,hdfs,Java,Hadoop,Hdfs,我让Hadoop 1.2.1在我的机器上以单节点集群模式运行。 它正在运行一个包含0个reduce任务的任务 每个map任务的输出显然都作为第000部分写入HDFS** 但是hadoop系统运行的系统崩溃了。现在我想copyToLocal成功完成的映射任务的输出 当我执行hadoop dfs-ls/output\u dir时,我可以看到列出的所有“部分”,但是hadoop dfs-copyFromLocal/output\u dir LOCAL\u PATH失败,出现以下错误: copyToLo

我让Hadoop 1.2.1在我的机器上以单节点集群模式运行。 它正在运行一个包含0个reduce任务的任务

每个map任务的输出显然都作为第000部分写入HDFS**

但是hadoop系统运行的系统崩溃了。现在我想
copyToLocal
成功完成的映射任务的输出

当我执行
hadoop dfs-ls/output\u dir
时,我可以看到列出的所有“部分”,但是
hadoop dfs-copyFromLocal/output\u dir LOCAL\u PATH
失败,出现以下错误:

copyToLocal:org.apache.hadoop.hdfs.server.namenode.SafeModeException: 为…设置零块位置。名称节点处于安全模式

我无法启动数据节点,我发现的大多数解决方案都涉及使用
hadoop namenode-format
格式化namenode。我不想丢失数据


可以从dfs.tmp.dir恢复输出吗?

为什么不能启动datanode?
错误datanode.datanode:dfs.data.dir中的所有目录都无效。
Hmm是的,这不好。您可以在dfs.data.dir中找到地图输出的块。不过你得自己把它们重新组合起来。嗯,是的,我也是这么想的。正在寻找恢复HDFS的可能性。谢谢@grampage!