Java调用CDH大数据集群操作txt文件入库hdfs的示例代码
时间: 2024-09-19 18:11:45 浏览: 45
在Java中,如果你需要将一个TXT文件的操作(比如读取内容并入库到HDFS)与Apache CDH(Cloudera Distribution Hadoop)集成,通常会使用Hadoop API,如Hadoop File System (HDFS) Client。以下是一个简单的示例,展示如何从本地读取TXT文件并将内容写入HDFS:
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class FileToHdfsExample {
public static void main(String[] args) throws Exception {
// 创建配置对象,指定HDFS的地址
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://<your_cluster_host>:<port>"); // 例如hdfs://localhost:9000
// 初始化FileSystem
FileSystem fs = FileSystem.get(conf);
// 定义源文件路径和目标HDFS路径
Path localFilePath = new Path("/path/to/local/file.txt");
Path hdfsTargetPath = new Path("/path/in/hdfs/output.txt");
// 检查目标路径是否存在,如果不存在则创建
if (!fs.exists(hdfsTargetPath)) {
fs.mkdirs(hdfsTargetPath);
}
// 使用FSDataOutputStream写入文件
FSDataOutputStream out = fs.create(hdfsTargetPath);
try (BufferedReader reader = new BufferedReader(new FileReader(localFilePath))) {
String line;
while ((line = reader.readLine()) != null) {
out.writeBytes(line + "\n"); // 写入每行后换行
}
} finally {
out.close(); // 关闭流
}
System.out.println("File copied to HDFS successfully.");
fs.close(); // 关闭连接
}
}
```
在这个例子中,你需要替换`<your_cluster_host>`和`<port>`为实际的CDH集群的主机和端口。注意这只是一个基本示例,实际操作可能会涉及到错误处理、权限管理以及更复杂的文件处理。
阅读全文