如何从HDFS中的特定副本读取块?

时间:2014-02-06 08:49:55

标签: hadoop mapreduce hdfs

我需要编写一个程序,用于从给定文件的特定数据节点中提取HDFS 中的块。这不是在MapReduce作业中运行,而是以编程方式在我的集群上收集一些统计信息。

到目前为止,给定一个文件,我已经能够提取与该文件关联的块位置。对于每个块,有多个副本,我需要访问位于某个副本上的块。我理解这些主要是远程读取操作。

我做了以下事情:

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
Path inFile = new Path(args[0]);
FileStatus status = fs.getFileStatus(inFile);
BlockLocation[] locs = fs.getFileBlockLocations(status, 0, status.getLen());
String[] hosts = locs[0].getHosts ();

有人能告诉我如何从主机[0] 中获取 locs [0] 指向的块吗?

0 个答案:

没有答案