拷贝本地文件至hdfs中java
时间: 2023-11-20 17:04:24 浏览: 162
可以使用Hadoop的FileSystem API来将本地文件复制到HDFS中。以下是一个示例代码:
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
public class LocalToHdfs {
public static void main(String[] args) throws IOException {
// 设置Hadoop配置
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:9000");
// 获取本地文件系统和Hadoop文件系统
FileSystem localFs = FileSystem.getLocal(conf);
FileSystem hdfsFs = FileSystem.get(conf);
// 定义本地文件和HDFS文件路径
Path localPath = new Path("/path/to/local/file");
Path hdfsPath = new Path("/path/to/hdfs/file");
// 复制本地文件到HDFS
hdfsFs.copyFromLocalFile(localPath, hdfsPath);
// 关闭文件系统
localFs.close();
hdfsFs.close();
}
}
```
在此示例中,我们首先设置了Hadoop配置,指定了HDFS的默认文件系统。然后,我们获取本地文件系统和Hadoop文件系统的实例。接下来,我们定义要复制的本地文件和目标HDFS文件的路径。最后,我们使用Hadoop FileSystem API中的copyFromLocalFile方法将本地文件复制到HDFS中。最后,我们关闭了两个文件系统的连接。
阅读全文