Hadoop Java - 将文件从Windows共享文件夹服务器复制到HDFS

时间:2017-08-22 09:31:47

标签: java hadoop hdfs

我想从Windows共享文件夹服务器上传多个文件(例如// server_name / folder /) 到我的 HDFS 使用Java

我尝试过的方法列表

  • org.apache.hadoop.fs.FileUtil set input path = // server_name / folder / 它说java.io.FileNotFoundException:文件// server_name / folder /不存在

  • FileSystem.copyFromLocalFile(我认为这是从本地hadoop服务器到hdfs服务器)

  • IOUtils.copyBytes与fileUtil>>相同文件不存在

  • 一个简单的File.renameTo与fileUtil>>相同文件不存在

    String source_path =" \\ server_name \ folder \ xxx.txt";

    String hdfs_path =" hdfs:// HADOOP_SERVER_NAME:Port / myfile / xxx.txt&#34 ;;

    文件srcFile =新文件(source_path);

    文件dstFile =新文件(hdfs_path);

    srcFile.renameTo(dstFile);

我是否需要创建FTP或如何使用FTPFileSystem

或者任何人都有更好的解决方案或示例代码

谢谢

1 个答案:

答案 0 :(得分:1)

FileSystem具有copyFromLocal方法:

import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.fs.FileSystem;

Configuration configuration = new Configuration();
configuration.set("fs.defaultFS", "hdfs://abc:9000");

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