如何跟踪hadoop中哪个数据节点在哪个数据块?

时间:2011-06-16 12:47:31

标签: hadoop replication

如果复制了一个数据块,将数据节点复制到哪个数据块? 是否有任何工具可以显示复制块的位置?

2 个答案:

答案 0 :(得分:36)

如果您知道文件名,可以通过DFS浏览器查看。

转到您的namenode网络界面,说“浏览文件系统”并导航到您感兴趣的文件。在页面底部,将显示文件中所有块的列表,以及每个块的位置这些街区位于。

注意:当您点击HDFS文件系统中的实际文件时,它看起来像这样。

ss#1

或者,您可以运行:

hadoop fsck / -files -blocks -locations

将报告所有街区及其所有位置。

答案 1 :(得分:0)

有一个很好的工具,由CERN开源 - 请参阅博客文章 https://db-blog.web.cern.ch/blog/daniel-lanza-garcia/2016-04-tool-visualise-block-distribution-hadoop-hdfs-cluster

它不仅会显示跨节点的块位置,还会显示这些节点上的磁盘(表格视图):

enter image description here

此项目的代码可在此处找到:https://github.com/cerndb/hdfs-metadata

这个CERN的工具内部使用对Hadoop的API调用 - 例如,参见 https://github.com/cerndb/hdfs-metadata/blob/master/src/main/java/ch/cern/db/hdfs/DistributedFileSystemMetadata.java#L168

因此,如果您计划在许多文件上运行此功能,然后查看合并结果,那么它比使用cli工具要快得多。

hdfs fsck / -files -blocks -locations允许您一次只能看到一个文件。

我们使用这个工具来查看巨大的镶木桌子是否在节点和磁盘之间很好地分布,以检查是否由于数据分布缺陷而发生数据处理偏差。