写入hdfs 用Java实现
时间: 2023-10-11 13:10:36 浏览: 42
要用Java实现写入HDFS,需要使用Hadoop的Java API。以下是实现写入HDFS的Java代码示例:
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
public class HDFSWriter {
private Configuration conf;
private FileSystem fs;
public HDFSWriter() throws IOException {
conf = new Configuration();
// 设置HDFS的URI
conf.set("fs.defaultFS", "hdfs://localhost:9000");
fs = FileSystem.get(conf);
}
public void write(String sourcePath, String destPath) throws IOException, URISyntaxException {
// 获取输入流
InputStream in = getClass().getResourceAsStream(sourcePath);
// 创建输出路径
Path outputPath = new Path(destPath);
// 打开输出流
org.apache.hadoop.fs.FSDataOutputStream out = fs.create(outputPath);
// 写入数据
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = in.read(buffer)) > 0) {
out.write(buffer, 0, bytesRead);
}
// 关闭流
in.close();
out.close();
}
public void close() throws IOException {
fs.close();
}
public static void main(String[] args) throws IOException, URISyntaxException {
HDFSWriter writer = new HDFSWriter();
writer.write("/data/sample.txt", "/output/sample.txt");
writer.close();
}
}
```
在上面的示例中,我们使用了Hadoop的Java API来连接HDFS,并通过`InputStream`读取本地文件,然后通过`FSDataOutputStream`写入到HDFS中指定的路径。在实际应用中,需要根据自己的需求修改代码。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)