【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();
}
相关推荐
wuminyu11 分钟前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
callJJ2 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
wbs_scy2 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言
jinanwuhuaguo4 小时前
(第三十三篇)五月的文明奠基:OpenClaw 2026.5.2版本的文明级解读
android·java·开发语言·人工智能·github·拓扑学·openclaw
xmjd msup4 小时前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring
952365 小时前
SpringBoot统一功能处理
java·spring boot·后端
Lyyaoo.5 小时前
优惠券秒杀业务分析
java·开发语言
消失的旧时光-19435 小时前
统一并发模型:线程、Reactor、协程本质是一件事(从线程到协程 · 第6篇·终章)
java·python·算法
勿忘初心12215 小时前
Java 国密 SM4 加密工具类实战(Hutool + BouncyCastle)|企业级数据加密 + 兼容 JDK8
java·数据安全·数据加密·后端开发·企业级开发·国密 sm4
庞轩px5 小时前
第8篇:原子类与CAS底层原理——无锁并发的实现
java·cas·乐观锁·aba·无锁编程·自旋