从名称节点和数据节点文件恢复 Hadoop
Hadoop Restore from namenode and datanode files
我有来自不同 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
提前致谢。
在不同 Hadoop 集群之间复制数据的标准解决方案是 运行 DistCp 命令执行所需文件从源到目标的分布式副本。
假设另一个集群不再运行ning,并且您只有这些备份文件,那么可以通过将您拥有的文件复制到新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 and Offline Edits Viewer 命令。这些命令分别可以解码浏览fsimage和编辑文件。
我有来自不同 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
提前致谢。
在不同 Hadoop 集群之间复制数据的标准解决方案是 运行 DistCp 命令执行所需文件从源到目标的分布式副本。
假设另一个集群不再运行ning,并且您只有这些备份文件,那么可以通过将您拥有的文件复制到新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 and Offline Edits Viewer 命令。这些命令分别可以解码浏览fsimage和编辑文件。