我使用webhdfs在hdfs集群中存储一个文件。在conf文件中,我提到了复制因子2。使用webhdfsapi,第一个put请求告诉我们要放置文件的datanode的位置,并使用响应中的地址,使用第二个put请求将实际文件放置到datanode中。既然我们已经提到复制因子是2,那么文件将被复制到另一个datanode,并且我们知道2个文件中1个文件的位置,那么是否有可能得到第2个文件的位置,它位于哪个datanode上?提前谢谢
bogh5gae1#
首先,hdfs中的文件不是作为一个整体存储的。相反,它们被分割成块,这些块在集群中以复制的方式存储。因此,您的问题应该是如何找到块的第二个副本的位置,而不是文件的位置。您可以将web浏览器指向 namenode_machine:50070 ,hdfs webui。点击 Browse the filesystem 转到有问题的文件。单击此文件后,将打开一个新页面。向下滚动至:
namenode_machine:50070
Browse the filesystem
Total number of blocks: 1 -4906713039323389639: 127.0.0.1:50010
这将显示此文件的所有块以及它们所在的机器。hth公司
1条答案
按热度按时间bogh5gae1#
首先,hdfs中的文件不是作为一个整体存储的。相反,它们被分割成块,这些块在集群中以复制的方式存储。因此,您的问题应该是如何找到块的第二个副本的位置,而不是文件的位置。
您可以将web浏览器指向
namenode_machine:50070
,hdfs webui。点击Browse the filesystem
转到有问题的文件。单击此文件后,将打开一个新页面。向下滚动至:这将显示此文件的所有块以及它们所在的机器。
hth公司