在Hadoop中输入块路径

时间:2014-12-12 12:21:57

标签: hadoop input

我在16个VM上运行了Hadoop设置,每个4个处理器。 主输入文件分为小块(InputSlit)并分发到不同的机器。 现在我如何找到输入的哪个部分及其副本驻留在哪台机器上? 有命令吗? 我在互联网上找不到太多信息。 提前致谢

Pavan kumar Alluri

1 个答案:

答案 0 :(得分:0)

您可以使用此代码计算机器上数据的分布:

    Path file = new Path("/path/to/some/file/");
    FileSystem fs = file.getFileSystem(getConf());
    FileStatus fileStatus = fs.getFileStatus(file);
    HDFSBlocksDistribution dist = FSHDFSUtils.computeHDFSBlocksDistribution(fs, fileStatus, 0, fileStatus.getLen());
    for (HDFSBlocksDistribution.HostAndWeight value : dist.getHostAndWeights().values()) {
        System.out.println(value.getHost() + "\t" + value.getWeight());
    }