当前位置:   article > 正文

hdfsClient_java对hdfs进行上传、下载、删除、移动、打印文件信息尚硅谷大海哥_尚硅谷大海哥的csdn

尚硅谷大海哥的csdn

...........................................................................................................................................................

Java可以通过Hadoop提供的HDFS Java API来控制HDFS。通过HDFS Java API,可以实现对HDFS的文件操作,包括文件的创建、读取、写入、删除等操作。

...........................................................................................................................................................

.......................................................................................................................................................... 

具体来说,Java可以通过HDFS Java API来创建一个HDFS文件系统对象,然后使用该对象来进行文件的操作。例如,可以使用FileSystem类的create()方法来创建一个新的文件,使用open()方法来打开一个文件进行读取,使用write()方法来向文件中写入数据,使用delete()方法来删除一个文件等。

...........................................................................................................................................................

此外,Java还可以通过HDFS Java API来管理HDFS的元数据信息,包括文件的权限、所有者、修改时间等信息。通过FileSystem类的setPermission()、setOwner()、setTimes()等方法,可以对文件的元数据信息进行修改。

...........................................................................................................................................................

前提:
配置HADOOP_HOME环境变量

配置Path环境变量

Maven依赖成功导入

(这三个不会的评论区评论我发资料给你)

...........................................................................................................................................................

代码:

  1. package com.huangyongsheng.hdfs;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.net.URI;
  5. import java.net.URISyntaxException;
  6. import org.apache.hadoop.conf.Configuration;
  7. import org.apache.hadoop.fs.FileSystem;
  8. import org.apache.hadoop.fs.LocatedFileStatus;
  9. import org.apache.hadoop.fs.Path;
  10. import org.apache.hadoop.fs.RemoteIterator;
  11. import org.apache.hadoop.io.IOUtils;
  12. import org.junit.After;
  13. import org.junit.Before;
  14. import org.junit.Test;
  15. /**
  16. * 客户端代码常用套路
  17. * 1,获取客户端对象
  18. * 2.执行操作
  19. * 3.关闭资源
  20. * HDFS zookeeper
  21. */
  22. public class HdfsClient {
  23. private FileSystem fs;
  24. @Before
  25. public void init() throws URISyntaxException, IOException, InterruptedException {
  26. URI uri = new URI("hdfs://hadoop102:8020");
  27. Configuration configuration = new Configuration();
  28. String user="huangyongsheng";
  29. fs = FileSystem.get(uri, configuration, user);
  30. }
  31. @After
  32. public void close() throws IOException {
  33. fs.close();
  34. }
  35. @Test
  36. //创建目录
  37. public void testmkdir() throws URISyntaxException, IOException, InterruptedException {
  38. fs.mkdirs(new Path("/xiyuo/huaguoshan2"));
  39. System.out.println("目录创建成功");
  40. }
  41. @Test
  42. //上传;是否删除原数据;是否覆盖;原数据路径;目的路径
  43. public void testPut() throws IOException {
  44. fs.copyFromLocalFile(false,false,new Path("D:\\sun_wu_kong.txt"),new Path("/xiyuo/huaguoshan"));
  45. }
  46. @Test
  47. //下载;是否删除原数据;hdfs文件路径;win路径;是否校验(不用)
  48. public void testGet() throws IOException {
  49. // fs.copyToLocalFile(false,new Path(""),new Path(""));
  50. InputStream in =fs.open(new Path("/dancijishu/wcinput/word1.txt"));
  51. IOUtils.copyBytes(in,System.out,4096,false);
  52. IOUtils.closeStream(in);
  53. }
  54. @Test
  55. //删除;删除文件,目录,非空目录(需要参数true)是否递归删除
  56. public void testRm() throws IOException {
  57. fs.delete(new Path(""),false);
  58. }
  59. @Test
  60. //文件的更名和移动
  61. public void testmv() throws IOException {
  62. fs.rename(new Path("/xiyuo/huaguoshan2"),new Path("/xiyuo/huaguoshan_namechanged"));
  63. // rename可以移动文件并改名 原文件路径(路径里的文件) 一个新的路径(路径里的文件)
  64. }
  65. @Test
  66. //获取文件详情
  67. public void fileDetail() throws IOException {
  68. //获取所有文件信息 迭代器
  69. RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"),true);
  70. while (listFiles.hasNext()){
  71. LocatedFileStatus fileStatus = listFiles.next();
  72. System.out.println("===================="+fileStatus.getPath()+"====================");
  73. System.out.println(fileStatus.getPermission());
  74. System.out.println(fileStatus.getOwner());
  75. System.out.println(fileStatus.getGroup());
  76. System.out.println(fileStatus.getLen());
  77. System.out.println(fileStatus.getModificationTime());
  78. System.out.println(fileStatus.getReplication());
  79. System.out.println(fileStatus.getPath().getName());
  80. }
  81. }
  82. }

...........................................................................................................................................................Guff_hys_python数据结构,大数据开发学习,python实训项目-CSDN博客 

 ..........................................................................................................................................................

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/721838
推荐阅读
相关标签
  

闽ICP备14008679号