通过 HDFS 提供的 Java API,我们可以完成以下功能:
-
在 HDFS 上创建目录
-
通过 FileSystem API 读取数据(下载文件)
-
写入数据(上传文件)
-
查看目录及文件的信息
-
查看某个文件在 HDFS 集群中的位置
-
删除数据
-
获取 HDFS 集群上所有数据节点的信息
一、在 HDFS 上创建目录
@Test
public void testMkDir() throws Exception {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.220.111:9000");
// 获取一个HDFS 客户端
FileSystem client = FileSystem.get(conf);
// 创建目录
boolean flag = client.mkdirs(new Path("/f1"));
// 关闭
client.close();
System.out.println(flag);
}
二、通过 FileSystem API 读取数据(下载文件)
@Test
public void testDownLoad() throws Exception {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.220.111:9000");
FileSystem client = FileSystem.get(conf);
// 打开一个输入流 <------HDFS
InputStream in = client.open(new Path("/tools/stt.txt"));
// 构造一个输出流 ----> D:\\temp\\down.txt
OutputStream out = new FileOutputStream("D:\\down.txt"); // 目录必须事先存在
// 将输入流中的数据写到输出流
IOUtils.