使用Java API操作 HDFS,创建相关文件并写入内容
时间: 2024-06-11 09:07:30 浏览: 128
以下是使用Java API操作HDFS的示例代码,创建文件并写入内容:
```java
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class HdfsDemo {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
// 创建文件并写入内容
String filePath = "/user/hadoop/test.txt";
Path file = new Path(filePath);
if (fs.exists(file)) {
System.out.println("文件已存在,删除文件");
fs.delete(file, true);
}
OutputStream os = fs.create(file);
os.write("Hello, Hadoop!".getBytes("UTF-8"));
os.flush();
os.close();
System.out.println("文件创建成功");
// 读取文件内容
InputStream is = fs.open(file);
IOUtils.copyBytes(is, System.out, 4096, false);
IOUtils.closeStream(is);
fs.close();
}
}
```
在上述示例代码中,使用`FileSystem.get(conf)`方法获取到HDFS文件系统对象,然后使用`fs.exists(file)`方法判断文件是否已经存在,如果存在则使用`fs.delete(file, true)`方法删除文件。接着使用`fs.create(file)`方法创建文件,并使用`os.write()`方法写入内容。最后使用`fs.open(file)`方法读取文件内容,使用`IOUtils.copyBytes()`方法将内容输出到控制台。
需要注意的是,在操作HDFS时,需要配置`core-site.xml`和`hdfs-site.xml`两个配置文件。`core-site.xml`配置文件中需要配置Hadoop集群的名称和HDFS的访问地址,`hdfs-site.xml`配置文件中需要配置HDFS的副本数和数据块大小等信息。在本地运行Java程序时,需要将这两个配置文件放在classpath下,或者在程序中使用`conf.addResource()`方法加载配置文件。
阅读全文