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

izkcnapc  于 2021-06-03  发布在  Hadoop
关注(0)|答案(0)|浏览(212)

我需要编写一个程序,从给定文件的特定数据节点中提取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]指向的块吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题