封装工具类
public class DoitUtils {
/**
* 返回操作hdfs://linux01:8020/ 文件系统的客户端对象
* @return
* @throws Exception
*/
public static FileSystem getFs() throws Exception {
return FileSystem.newInstance(new URI("hdfs://linux01:8020/"), new Configuration(),"root") ;
}
}
上传
public class UploadDemo {
public static void main(String[] args) throws Exception {
//创建文件系统对象
Configuration conf = new Configuration();
FileSystem fs = FileSystem.newInstance(new URI("hdfs://linux01:8020"), conf, "root");
//本地路径 待上传内容
Path path = new Path("D:\\hadoop-2.8.1.zip");
//HDFS系统路径
Path path2 = new Path("/doit17/hdp/");
fs.copyFromLocalFile(path,path2);//没有返回值
/**
* 参数一 是否删除上传文件 默认 是false 不删除 true 删除(剪切)
* 参数二 是否覆盖HDFS中已存在的内容 默认 true
* 参数三 本地路径 待上传内容
* 参数四 HDFS系统路径
*/
fs.copyFromLocalFile(true,true,path,path2);
//关闭对象 释放资源
fs.close();
}
}
下载
public class DownDemo {
public static void main(String[] args) throws Exception {
//使用工具类调用 获取客户端对象
FileSystem fs = DoitUtils.getFs();
//HDFS系统路径
Path path = new Path("/doit17/hdp/hadoop-2.8.1.zip");
//本地路径
Path path2 = new Path("d://");
/**
* 参数一 HDFS系统路径
* 参数二 本地路径
*/
fs.copyToLocalFile(path,path2);
/**
* 参数一 是否删除HDFS中下载的文件 默认 false
* 参数二 HDFS 系统路径
* 参数三 本地路径