【hadoop】使用Java API获取HDFS的元信息

使用Java API获取HDFS的元信息

查找某个文件的数据块在HDFS的DataNode位置

java 复制代码
@Test
public void test1() throws Exception{
	//指定NameNode 地址
	Configuration conf = new Configuration();
	conf.set("fs.defaultFS", "hdfs://192.168.157.111:9000");
		
	FileSystem client = FileSystem.get(conf);
		
	//得到该文件的状态
	FileStatus status = client.getFileStatus(new Path("/folder1/a.tag.gz"));
		
	//获取该文件的数据块信息
	BlockLocation[] list = client.getFileBlockLocations(status, 0, status.getLen());
	for(BlockLocation blk:list) {
		System.out.println("数据块:主机:" + Arrays.toString(blk.getHosts()));
	}
	
	client.close();
}

查看HDFS的数据节点

java 复制代码
@Test
public void test2() throws Exception{
	//指定NameNode 地址
	Configuration conf = new Configuration();
	conf.set("fs.defaultFS", "hdfs://192.168.157.111:9000");
		
	//使用FileSystem的子类
	DistributedFileSystem client = (DistributedFileSystem)FileSystem.get(conf);
		
	//获取所有的数据节点
	DatanodeInfo[] list =client.getDataNodeStats();
	for(DatanodeInfo data:list) {
		System.out.println(data.getHostName());
	}
		
	client.close();
}

删除HDFS数据

java 复制代码
@Test
public void test3() throws Exception{
	//指定NameNode 地址
	Configuration conf = new Configuration();
	conf.set("fs.defaultFS", "hdfs://192.168.157.111:9000");

	FileSystem client = FileSystem.get(conf);
		
	//删除数据
	//第二个参数false:是否使用递归
	boolean flag = client.delete(new Path("/folder1/a.tag.gz"), false);
	System.out.println(flag?"删除成功":"删除失败");
	
	client.close();
}
相关推荐
Tina学编程19 分钟前
线程P5 | 单例模式[线程安全版]~懒汉 + 饿汉
java·单例模式·线程安全
我们从未走散20 分钟前
设计模式学习笔记-----单例模式
java·笔记·学习·单例模式·设计模式
期待のcode24 分钟前
Maven
java·spring·maven·mybatis
IT毕设实战小研41 分钟前
Java毕业设计选题推荐 |基于SpringBoot的健身爱好线上互动与打卡社交平台系统 互动打卡小程序系统
java·开发语言·vue.js·spring boot·vue·毕业设计·课程设计
long3163 小时前
java 工厂方法设计模式 FactoryMethod
java·开发语言·后端·设计模式
萤丰信息5 小时前
智慧工地从工具叠加到全要素重构的核心引擎
java·大数据·人工智能·重构·智慧城市·智慧工地
找不到、了7 小时前
Java设计模式之《原型模式》--深、浅copy
java·设计模式·原型模式
程序员岳焱8 小时前
Java 调用 Python 脚本:实现 HelloWorld
java·后端·python
计算机源码社9 小时前
分享一个基于Hadoop+spark的超市销售数据分析与可视化系统,超市顾客消费行为分析系统的设计与实现
大数据·hadoop·数据分析·spark·计算机毕业设计源码·计算机毕设选题·大数据选题推荐
etcix9 小时前
wrap cpp variant as dll for c to use
java·c语言·开发语言