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();
    }
posted @   奉禾  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示
主题色彩