java上传文件到hdfs
时间: 2023-08-31 07:09:43 浏览: 79
可以通过使用 Hadoop HDFS API,在 Java 代码中上传文件到 HDFS。以下是一个简单的示例代码:
```java
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class HdfsUploader {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://localhost:9000"); //设置HDFS地址
FileSystem fs = FileSystem.get(conf);
//本地文件路径
String localFilePath = "local-file-path";
//HDFS文件路径
String hdfsFilePath = "hdfs-file-path";
//创建一个输入流
InputStream in = new FileInputStream(new File(localFilePath));
//创建一个输出流
Path outputPath = new Path(hdfsFilePath);
OutputStream out = fs.create(outputPath);
//将本地文件内容复制到 HDFS 文件中
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
//关闭输入和输出流
in.close();
out.close();
System.out.println("文件上传成功!");
}
}
```
需要注意的是,需要将 Hadoop 的 `core-site.xml` 和 `hdfs-site.xml` 配置文件放在项目的 classpath 下。同时,需要将 Hadoop 的依赖包添加到项目的依赖中。
阅读全文