介绍
上传文件到 HDFS,是通过 FileSystem.copyFromLocalFile() 实现的,其底层调用如下图:
java
用上图底层代码实现上传文件:
@Test
public void copyFromLocalFile() throws Exception{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://hadoop1:8020"), conf, "root");
FSDataOutputStream out = null;
try {
InputStream in = new FileInputStream("d:/data.txt");
out = fs.create(new Path("/data.txt"), false);
IOUtils.copyBytes(in, out, conf, true);
} catch (IOException e) {
IOUtils.closeStream(out);
throw e;
}
fs.close();
}
