Java编写代码大批量的txt文件入库hdfs的示例代码
时间: 2024-09-19 21:11:38 浏览: 38
利用JAVA代码将本地文件传入HDFS中
在Java中,将大量TXT文件批量导入HDFS(Hadoop Distributed File System)通常涉及I/O操作和Hadoop的FileSystem API。以下是一个简单的示例,说明如何使用Apache Hadoop的`org.apache.hadoop.fs.FileSystem`和`org.apache.hadoop.io.IOUtils`类来实现这个任务:
```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.File;
import java.io.FileInputStream;
import java.io.IOException;
public class BatchImportTXTToHDFS {
public static void main(String[] args) throws IOException {
// 设置HDFS配置
Configuration conf = new Configuration();
String hdfsUrl = "hdfs://your_hdfs_url:port"; // 替换为你实际的HDFS地址
FileSystem fs = FileSystem.get(conf);
// 指定要上传文件夹的本地路径和HDFS路径
String localFolderPath = "/path/to/local/folder";
Path hdfsFolderPath = new Path(hdfsUrl + "/path/to/hdfs/folder");
// 遍历本地文件夹中的所有.txt文件
File folder = new File(localFolderPath);
for (File file : folder.listFiles((dir, name) -> name.endsWith(".txt"))) {
FileInputStream fis = new FileInputStream(file);
try {
// 将文件内容写入HDFS
fs.copyStream(fis, hdfsFolderPath.resolve(file.getName()));
System.out.println("Uploaded " + file.getAbsolutePath() + " to HDFS");
} finally {
IOUtils.closeQuietly(fis);
}
}
// 关闭FS连接
fs.close();
}
}
```
**重要提示:** 确保已经设置了Hadoop环境变量,并且HDFS服务器正在运行。同时,你需要替换示例中的`your_hdfs_url`、`local_folder_path`和`hdfs_folder_path`。
阅读全文