将目录从本地系统复制到hdfs Java代码


问题内容

尝试使用Java代码将目录从本地系统复制到HDFS时遇到问题。我能够移动单个文件,但无法找到一种移动带有子文件夹和文件的整个目录的方法。有人可以帮我吗?提前致谢。


问题答案:

只需使用FileSystemcopyFromLocalFile方法即可。如果源路径是本地目录,它将被复制到HDFS目标:

...
Configuration conf = new Configuration();
conf.addResource(new Path("/home/user/hadoop/conf/core-site.xml"));
conf.addResource(new Path("/home/user/hadoop/conf/hdfs-site.xml"));

FileSystem fs = FileSystem.get(conf);
fs.copyFromLocalFile(new Path("/home/user/directory/"), 
  new Path("/user/hadoop/dir"));
...