1.16总结
Java代码
package HDFSApi;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.;
import java.io.;
public class HDFSApi {
/**
-
下载文件到本地
-
判断本地路径是否已存在,若已存在,则自动进行重命名
/
public static void copyToLocal(Configuration conf, String remoteFilePath, String
localFilePath) throws IOException {
FileSystem fs = FileSystem.get(conf);
Path remotePath = new Path(remoteFilePath);
File f = new File(localFilePath);
/ 如果文件名存在,自动重命名(在文件名后面加上 0, 1 ...) */
if (f.exists()) {
System.out.println(localFilePath + " 已存在.");
Integer i = 0;
while (true) {
f = new File(localFilePath + "" + i.toString());
if (!f.exists()) {
localFilePath = localFilePath + "" + i.toString();
break;
}
}
System.out.println("将重新命名为: " + localFilePath);
}// 下载文件到本地
Path localPath = new Path(localFilePath);
fs.copyToLocalFile(remotePath, localPath);
fs.close();
}
/**
- 主函数
*/
public static void main(String[] args) {
Configuration conf = new Configuration();
conf.set("fs.default.name","hdfs://node1:8020");
String localFilePath = "E:/text.txt"; // 本地路径
String remoteFilePath = "/user/root/text.txt"; // HDFS 路径
try {
HDFSApi.copyToLocal(conf, remoteFilePath, localFilePath);
System.out.println("下载完成");
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果
(3)将HDFS中指定文件的内容输出到终端中;
java代码
package HDFSApi;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.;
import java.io.;
public class HDFSApi {
/**
- 读取文件内容
*/
public static void cat(Configuration conf, String remoteFilePath) throws IOException {
FileSystem fs = FileSystem.get(conf);
Path remotePath = new Path(remoteFilePath);
FSDataInputStream in = fs.open(remotePath);
BufferedReader d = new BufferedReader(new InputStreamReader(in));
String line = null;
while ( (line = d.readLine()) != null ) {
System.out.println(line);
}
d.close();
in.close();
fs.close();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏