HDFS FileSplit位置

时间:2013-09-18 04:22:55

标签: hadoop hdfs yarn filesplitting

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

filesplit_0001 node1
filesplit_0002 node4
...

编辑:我知道Microsoft Azure中提供了这样的列表。

1 个答案:

答案 0 :(得分:1)

fsck 工具提供了一种查找任何特定文件中哪些块的简便方法。例如:

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

参考:Hadoop Command Line Guide.

修改

输入拆分是由单个地图处理的输入块。每个地图处理一次拆分。每个拆分被划分为记录,并且地图处理每个记录依次记录键值对。 拆分和记录是合乎逻辑的,但HDFS块是物理的。

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

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

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