我有一个安装了hadoop-2.1.0-beta的集群。有没有办法了解每个filesplit在我的群集中的位置?我正在寻找的是一个列表,如下面的
filesplit_0001 node1
filesplit_0002 node4
...
编辑:我知道Microsoft Azure中提供了这样的列表。
答案 0 :(得分:1)
fsck 工具提供了一种查找任何特定文件中哪些块的简便方法。例如:
% hadoop fsck <path> -files -blocks -locations -racks
修改强>
输入拆分是由单个地图处理的输入块。每个地图处理一次拆分。每个拆分被划分为记录,并且地图处理每个记录依次记录键值对。 拆分和记录是合乎逻辑的,但HDFS块是物理的。
InputSplit
具有以字节为单位的长度和一组存储位置,这些位置只是主机名字符串。拆分不包含输入数据;它只是对数据的引用。
您可以在InputSplit
方法中获取map
个实例。
InputSplit inputSplit=context.getInputSplit(); //Input split instance
String[] splitLocations = inputSplit.getLocations();