创建Maven项目添加依赖
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.2.0</version>
</dependency>
前置代码
//创建一个配置对象
Configurationconf=newConfiguration();
//指定HDFS的地址
conf.set("fs.defaultFS","hdfs://bigdata01:9000");
//获取操作HDFS的对象
FileSystemfileSystem=FileSystem.get(conf);
删除文件或目录
privatestaticvoiddelete(FileSystemfileSystem) throwsIOException {
//删除文件,目录也可以删除
//如果要递归删除目录,则第二个参数需要设置为true
//如果删除的是文件或者空目录,第二个参数会被忽略
booleanflag=fileSystem.delete(newPath("/LICENSE.txt"),true);
if(flag){
System.out.println("删除成功!");
}else{
System.out.println("删除失败!");
}
}
下载文件
privatestaticvoidget(FileSystemfileSystem) throwsIOException {
//获取HDFS文件系统中的输入流
FSDataInputStreamfis=fileSystem.open(newPath("/README.txt"));
//获取本地文件的输出流
FileOutputStreamfos=newFileOutputStream("D:\\README.txt");
//下载文件
IOUtils.copyBytes(fis,fos,1024,true);
}
上传文件
privatestaticvoidput(FileSystemfileSystem) throwsIOException {
//获取本地文件的输入流
FileInputStreamfis=newFileInputStream("D:\\user.txt");
//获取HDFS文件系统的输出流
FSDataOutputStreamfos=fileSystem.create(newPath("/user.txt"));
//上传文件:通过工具类把输入流拷贝到输出流里面,实现本地文件上传到HDFS
IOUtils.copyBytes(fis,fos,1024,true);
}
上述基础操作基本能够满足在公司中需求,扩展Api参考官方文档