HDFS 文件拆分位置



我有一个安装了hadoop-2.1.0-beta的集群。有没有办法了解每个文件拆分在我的集群中的位置?我正在寻找的是如下列表

filesplit_0001 node1
filesplit_0002 node4
...

编辑:我知道这样的列表在 Azure Microsoft可用。

fsck 工具提供了一种简单的方法来找出任何特定文件中的块。例如:

% hadoop fsck <path> -files -blocks -locations -racks

参考 : Hadoop命令行指南.

编辑:

输入

分割是由单个地图处理的输入块。每个映射处理一个拆分。每个拆分都分为多个记录,映射依次处理每个记录一个键值对。拆分和记录是合乎逻辑的,但 HDFS 块是物理的。

InputSplit具有以字节为单位的长度和一组存储位置,这些位置只是主机名字符串。拆分不包含输入数据;它只是对数据的引用。

您可以在map方法中获取InputSplit实例。

InputSplit inputSplit=context.getInputSplit(); //Input split instance 
String[] splitLocations = inputSplit.getLocations();

最新更新