如何在Hadoop中找到blockName到DataNode的映射

时间:2012-06-09 05:55:55

标签: hadoop hdfs

是否有编程接口来确定是否存在哪个块存在于哪个数据节点上。 即能够读取fsImage并返回此信息。

2 个答案:

答案 0 :(得分:0)

我知道的一种粗略方法是在dfs数据目录中查找带有blockName的文件。 这是一个O(n)解决方案,我很确定会有一个O(1)解决方案。

答案 1 :(得分:0)

how to find file from blockName in HDFS hadoop类似,namenode没有公共接口,允许您从块ID(仅通过文件名)查找信息。

你可以看一下打开fsImage,但这只会给你一个从块ID到文件名的映射,因为托管这些块的实际位置(DataNodes)没有存储在这个文件中 - 数据节点在树上运行它们的数据目录和报告对NameNode有什么阻碍。

我想如果你可以将调试器附加到名称节点,你可能能够检查块映射,但是因为没有从ID到文件名的映射,它仍然是O(n)操作