写点什么

Hadoop Java api 操作 hdfs(二)

作者:Emperor_LawD
  • 2022 年 5 月 09 日
  • 本文字数:1456 字

    阅读完需:约 5 分钟

Hadoop Java api操作hdfs(二)

连接 hdfs

  • 新建 java 文件


  • HDFSApp文件中写入以下代码,在 hadoop 中创建文件夹


  package com.syh.hdfs;    import org.apache.hadoop.conf.Configuration;  import org.apache.hadoop.fs.FileSystem;  import org.apache.hadoop.fs.Path;  import org.junit.After;  import org.junit.Before;  import org.junit.Test;    import java.net.URI;    public class HDFSApp {      Configuration configuration = null;      FileSystem fileSystem = null;      // 配置路径(ip地址)      public static final String HDFS_PATH = "hdfs://192.168.207.128:8020";      // 测试(新建文件夹)      @Test      public void mkdir() throws Exception {          fileSystem.mkdirs(new Path("/emperorlawd/test"));      }        // Java 连接hdfs 需要先建立一个连接      // 测试方法执行之前要执行的操作      @Before      public void setUp() throws Exception {          System.out.println("开始建立与HDFS的连接");          configuration = new Configuration();          fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, "hadoop");      }        // 测试之后要执行的代码      @After      public void tearDown() {          configuration = null;          fileSystem = null;          System.out.println("关闭与HDFS的连接");      }  }
复制代码
  • 运行成功的效果

创建文件

  • HDFSApp文件中加入以下代码


  // 创建文件      @Test      public void create() throws Exception {          Path path = new Path("/emperorlawd/test/hello.txt");          FSDataOutputStream outputStream = fileSystem.create(path);          outputStream.write("hello hadoop".getBytes());          outputStream.flush();          outputStream.close();      }
复制代码


  • 运行create()

重命名文件

  • HDFSApp文件中加入以下代码


  // 重命名文件      @Test      public void rename() throws Exception {          Path oldPath = new Path("/emperorlawd/test/hello.txt");          Path newPath = new Path("/emperorlawd/test/rehello.txt");          fileSystem.rename(oldPath, newPath);      }
复制代码


  • 运行rename()

查看文件

  • HDFSApp文件中加入以下代码


  // 查看文件      @Test      public void cat() throws Exception {          Path path = new Path("/emperorlawd/test/rehello.txt");          FSDataInputStream inputStream = fileSystem.open(path);          IOUtils.copyBytes(inputStream, System.out, 1024);          inputStream.close();      }
复制代码


  • 运行cat()

上传文件

  • HDFSApp文件中加入以下代码


  // 上传文件      @Test      public void upload() throws Exception {          Path localPath = new Path("cifar-10-python.tar.gz");          Path hdfsPath = new Path("/");          fileSystem.copyFromLocalFile(localPath, hdfsPath);      }
复制代码


  • 运行upload()

下载文件

  • HDFSApp文件中加入以下代码


  // 下载文件      @Test      public void download() throws Exception {          Path hdfsPath = new Path("/hadoop-2.6.0-cdh5.7.0.tar.gz");          Path localPath = new Path("./down/hadoop-2.6.0-cdh5.7.0.tar.gz");          fileSystem.copyToLocalFile(false, hdfsPath, localPath, true);      }
复制代码


  • 运行download()


发布于: 刚刚阅读数: 6
用户头像

Emperor_LawD

关注

愿能如萤火一般,可以在黑夜里发一点光。 2021.05.19 加入

还未添加个人简介

评论

发布
暂无评论
Hadoop Java api操作hdfs(二)_hadoop_Emperor_LawD_InfoQ写作社区