首页 > 编程语言 > 详细

HDFS的Java客户端操作代码(查看HDFS下所有的文件存储位置信息)

时间:2017-01-10 09:16:02      阅读:253      评论:0      收藏:0      [点我收藏+]

1.查看HDFS下所有的文件存储位置信息

技术分享
 1 package Hdfs;
 2 
 3 import java.net.URI;
 4 import org.apache.hadoop.conf.Configuration;
 5 import org.apache.hadoop.fs.BlockLocation;
 6 import org.apache.hadoop.fs.FileStatus;
 7 import org.apache.hadoop.fs.FileSystem;
 8 import org.apache.hadoop.fs.Path;
 9 
10 public class LocationFile {
11     public static void main(String[] args) throws Exception {
12         String uri = "hdfs://neusoft-master:9000/user/root/test/demo1";
13         Configuration conf = new Configuration();
14         try {
15             FileSystem fs = FileSystem.get(URI.create(uri), conf);
16             Path fpath = new Path(uri);
17             FileStatus fileStatus = fs.getFileStatus(fpath);
18             BlockLocation[] blockLocations = fs.getFileBlockLocations(
19                     fileStatus, 0, fileStatus.getLen());
20             int blocklen = blockLocations.length;
21             for (int i = 0; i < blocklen; i++) {
22                 String[] hosts = blockLocations[i].getHosts();
23                 System.out.println("block_" +i+ "_location:" + hosts[0]);
24             }
25         } catch (Exception e) {
26             e.printStackTrace();
27         }
28     }
29 }
HDFS下所有文件存储位置

2.提交jar包,并分析运行结果

技术分享

3.这里的显示结果:

     block_0_location:neusoft-master

  分别为:块号:主机名,因为HDFS的文件是由Data块完成的,Hadoop中得block块一般64M

Hadoop2中block块为128M。(单独分析block块)

HDFS的Java客户端操作代码(查看HDFS下所有的文件存储位置信息)

原文:http://www.cnblogs.com/jackchen-Net/p/6267029.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!