我刚开始玩 Hadoop,我有以下疑问: 我们很清楚 Namenode 有关于输入 block 的“元数据”信息。现在我的问题是:
- 如何查看或查询元数据?
- 我如何查看 - 我的输入文件是如何被阻止和分发的?
- 如何确保我的输入文件在 HDFS 中被阻止和分发?
PS:我已经提到了以下网站:
http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/
谢谢!
最佳答案
如何查看或查询元数据?
您可以借助Offline Image Viewer 来做到这一点。它是一种将 fsimage 文件的内容转储为人类可读格式的工具,以便允许离线分析和检查 Hadoop 集群的命名空间。
用法:
bin/hdfs oiv -i fsimage -o fsimage.txt
您可以在这个 here 上找到更多信息.
我如何查看 - 我的输入文件是如何被阻止和分发的?
最简单的方法是将您的网络浏览器指向 HDFS webUI,即 namemnode_machine:50070。然后浏览到有问题的文件并单击以将其打开。向下滚动,您可以看到该文件每个 block 的位置。
或者,您可以使用 FileSystem API 提供的 getFileBlockLocations(FileStatus file, long start, long len)。它返回一个数组,其中包含主机名、偏移量和给定文件各部分的大小。
如何确保我的输入文件在 HDFS 中被阻止和分发?
您可以使用 fsck 来做到这一点。它会向您显示与特定文件相关的所有必要信息,例如总 block 数、最少复制 block 数、复制不足 block 数等。
关于java - hadoop - HDFS 文件分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20064768/