编写向hdfs中写文件的java代码
时间: 2023-04-13 20:00:43 浏览: 122
利用JAVA代码将本地文件传入HDFS中
以下是向HDFS中写文件的Java代码示例:
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
public class HdfsWriter {
public static void main(String[] args) throws Exception {
String uri = "hdfs://localhost:900/user/hadoop/test.txt";
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri), conf);
InputStream in = System.in;
OutputStream out = fs.create(new Path(uri));
IOUtils.copyBytes(in, out, 4096, true);
}
}
```
这个示例程序使用了Hadoop的Java API来连接到HDFS并向其中写入文件。在这个示例中,我们使用了本地模式的HDFS,因此URI为`hdfs://localhost:900`。如果你使用的是分布式模式的HDFS,则需要将URI设置为相应的HDFS地址。
在程序中,我们首先创建了一个`Configuration`对象,用于配置Hadoop的环境变量。然后,我们使用`FileSystem.get()`方法来获取一个`FileSystem`对象,该对象用于连接到HDFS。接下来,我们使用`fs.create()`方法创建一个新的文件,并返回一个`OutputStream`对象,该对象用于向文件中写入数据。最后,我们使用`IOUtils.copyBytes()`方法将输入流中的数据复制到输出流中,从而将数据写入到HDFS中的文件中。
注意,这个示例程序中的输入流是从标准输入中读取的。如果你想从其他地方读取数据,可以将输入流替换为相应的输入流。同样地,如果你想将数据写入到不同的文件中,可以将URI替换为相应的文件路径。
阅读全文