Hadoop中的输入块路径

Hadoop中的输入块路径,hadoop,input,Hadoop,Input,我有一个Hadoop安装程序,运行在16个VM上,每个VM有4个处理器。 主输入文件分为小块InputSlit并分发到不同的机器。 现在,我如何找到输入的哪一部分及其副本驻留在哪台机器上? 有命令吗? 我在网上找不到多少信息。 提前谢谢 Pavan kumar Alluri您可以使用此代码计算数据在计算机上的分布: Path file = new Path("/path/to/some/file/"); FileSystem fs = file.getFileSystem(get

我有一个Hadoop安装程序,运行在16个VM上,每个VM有4个处理器。 主输入文件分为小块InputSlit并分发到不同的机器。 现在,我如何找到输入的哪一部分及其副本驻留在哪台机器上? 有命令吗? 我在网上找不到多少信息。 提前谢谢


Pavan kumar Alluri

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

    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());
    }

为什么要做namenode为您做的工作?我只是想知道是否有任何命令可以在不同的机器上查看输入块