第一篇文章使用javaAPI进行HDFS上传与下载
HDFS_java_API (上传文件)
使用IOUtils将文件上传到HDFS
// 将文件上传到hdfs
@Test
public void putFileToHdfs() throws IllegalArgumentException, IOException, InterruptedException, URISyntaxException {
Configuration conf = new Configuration();
// 创建客户端
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.37.121:9000"), conf, "root");
// 获得输入流(本地路径)
FileInputStream fis = new FileInputStream(new File("D:\\HDFS_Temp\\jsf.json"));
// 获得输出流(hdfs路径)
FSDataOutputStream fos = fs.create(new Path("/Readme.json"));
IOUtils.copyBytes(fis, fos, conf);
// 释放资源
IOUtils.closeStream(fis);
IOUtils.closeStream(fos);
fs.close();
}
HDFS_java_API (下载文件)
// 将文件上传到hdfs
@Test
public void getFileToHdfs() throws IllegalArgumentException, IOException, InterruptedException, URISyntaxException {
Configuration conf = new Configuration();
// 创建客户端(指定路径 文件 要操作的用户)
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.37.121:9000"), conf, "root");
// 获得输入流(要上传到的HDFS路径)
FileInputStream fis = new FileInputStream(new File("D:\\HDFS_Temp\\jsf.json"));
// 获得输出流(要下载到的本地路径)
FileOutputStream fos = new FileOutputStream(new File("D:\\HDFS_Temp\\readme01.txt"));
IOUtils.copyBytes(fis, fos, conf);
// 释放资源
IOUtils.closeStream(fis);
IOUtils.closeStream(fos);
fs.close();
}