java代码将txt文件put到hdfs上的示例代码
时间: 2024-09-29 20:12:56 浏览: 39
现有student.txt和student-score.txt 将两个文件上传到hdfs上 使用Map/Reduce框架完成下面
在Java中,我们可以使用Hadoop的HDFS API来操作HDFS文件系统。以下是一个简单的示例,展示如何将本地TXT文件上传到HDFS:
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class HdfsFileUpload {
public static void main(String[] args) throws Exception {
// 初始化Hadoop配置
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:9000"); // 你的HDFS地址
// 创建FileSystem实例
FileSystem fs = FileSystem.get(conf);
// 定义要上传的本地文件路径和目标HDFS路径
String localFilePath = "/path/to/your/local/file.txt";
String hdfsPath = "/destination/path/in/hdfs/file.txt";
// 检查文件是否存在
if (!fs.exists(new Path(hdfsPath))) {
// 如果不存在则创建目录
fs.mkdirs(new Path(hdfsPath.substring(0, hdfsPath.lastIndexOf("/"))));
// 将本地文件上传到HDFS
FileInputStream in = new FileInputStream(localFilePath);
FSDataOutputStream out = fs.create(new Path(hdfsPath), true); // 第二个参数表示是否覆盖已存在的文件
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) != -1) {
out.write(buffer, 0, length);
}
// 关闭流
in.close();
out.close();
System.out.println("File uploaded successfully to HDFS at " + hdfsPath);
} else {
System.out.println("The file already exists at the specified path.");
}
}
}
```
阅读全文