1

我有来自不同 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

提前致谢。

4

1 回答 1

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 ViewerOffline Edits Viewer命令。这些命令可以分别解码和浏览 fsimage 和 edits 文件。

于 2017-01-25T07:45:34.517 回答