Hadoop 从 namenode 和 datanode 文件恢复

Posted

技术标签:

【中文标题】Hadoop 从 namenode 和 datanode 文件恢复【英文标题】:Hadoop Restore from namenode and datanode files 【发布时间】:2017-01-24 21:21:35 【问题描述】:

我有来自不同 hadoop 安装的 datanode、namenode 和辅助 namenode 文件夹(其中包含所有数据或信息)。

我的问题是,您如何查看其中的内容或将其添加到本地 HDFS 以查看数据或信息。

有办法恢复它什么的,但我找不到任何关于它的信息。

文件夹树是这样的:

对于 Namenode 和 SecondaryNamenode:

data/dfs/name
├── current
│ ├── VERSION
│ ├── edits_0000000000000000001-0000000000000000007
│ ├── edits_0000000000000000008-0000000000000000015
│ ├── edits_0000000000000000016-0000000000000000022
│ ├── edits_0000000000000000023-0000000000000000029
│ ├── edits_0000000000000000030-0000000000000000030
│ ├── edits_0000000000000000031-0000000000000000031
│ ├── edits_inprogress_0000000000000000032
│ ├── fsimage_0000000000000000030
│ ├── fsimage_0000000000000000030.md5
│ ├── fsimage_0000000000000000031
│ ├── fsimage_0000000000000000031.md5
│ └── seen_txid

对于 Datanode:

data/dfs/data/
├── current
│ ├── BP-1079595417-192.168.2.45-1412613236271
│ │ ├── current
│ │ │ ├── VERSION
│ │ │ ├── finalized
│ │ │ │ └── subdir0
│ │ │ │ └── subdir1
│ │ │ │ ├── blk_1073741825
│ │ │ │ └── blk_1073741825_1001.meta
│ │ │ │── lazyPersist
│ │ │ └── rbw
│ │ ├── dncp_block_verification.log.curr
│ │ ├── dncp_block_verification.log.prev
│ │ └── tmp
│ └── VERSION

提前致谢。

【问题讨论】:

【参考方案1】:

在不同 Hadoop 集群之间复制数据的标准解决方案是运行 DistCp 命令以执行所需文件从源到目标的分布式副本。

假设另一个集群不再运行,并且您只有这些备份文件,那么可以通过将您拥有的文件复制到新 Hadoop 集群使用的目录中来恢复。这些位置将在 hdfs-site.xml 的配置属性中指定:dfs.namenode.name.dir 用于 NameNode(您的 data/dfs/name 目录),dfs.datanode.data.dir 用于 DataNode(您的 data/dfs/data 目录)。

请注意,这可能仅在您运行与先前部署相同版本的 Hadoop 时才有效。否则,可能会出现兼容性问题。如果您尝试运行旧版本,则 NameNode 将无法启动。如果您尝试运行较新的版本,则可能需要先通过运行hdfs namenode -upgrade 来完成升级过程。

如果您只需要查看文件系统元数据,另一种选择是使用Offline Image Viewer 和Offline Edits Viewer 命令。这些命令可以分别对fsimage和edits文件进行解码和浏览。

【讨论】:

非常感谢,您的回答比我预期的要好。我看你是Hadoop方面的专家,谢谢你的回答。虽然我无法正确执行 ./hdfs oiv -i $HADOOP_HOME/namenode/current/fsimage -o fsimage.txt 命令,但也许我需要搜索有关该命令的更多信息。亲切的问候

以上是关于Hadoop 从 namenode 和 datanode 文件恢复的主要内容,如果未能解决你的问题,请参考以下文章

hdfs 文件未分发

hadoop---hdfs详解

CDH6.3配置HDFS高可用,多NameNode

大数据—— Hadoop 常见面试题整理

Hadoop 从 namenode 和 datanode 文件恢复

无法从 namenode (master) 启动集群:datanode (slave) 和 namenode (master) 上的 $HADOOP_HOME 不同