1.新建项目
2.导包

解压hadoop-2.7.3.tar.gz
E:\工具\大数据\大数据提升资料\01-软件资料\06-Hadoop\安装包\Java1.8环境
下编译\hadoop-2.7.3\hadoop-2.7.3\share\hadoop\common
E:\工具\大数据\大数据提升资料\01-软件资料\06-Hadoop\安装包\Java1.8环境
下编译\hadoop-2.7.3\hadoop-2.7.3\share\hadoop\common\lib
E:\工具\大数据\大数据提升资料\01-软件资料\06-Hadoop\安装包\Java1.8环境
下编译\hadoop-2.7.3\hadoop-2.7.3\share\hadoop\hdfs

JUNIT  单元测试
  /**
   * 单元测试
   * 1.修饰符必须是public
   * 2.不能有参数
   * 3.不能有返回值
   *
   * 运行:选中方法名来运行
   *       run as  --junit test
   */
  @Test
  public  void m1(){
    System.out.println("hello");
  }

  1. package com.zy.hdfs;
  2.  
  3. import java.io.IOException;
  4. import java.net.URI;
  5. import java.net.URISyntaxException;
  6. import java.util.Iterator;
  7.  
  8. import org.apache.hadoop.conf.Configuration;
  9. import org.apache.hadoop.fs.FileStatus;
  10. import org.apache.hadoop.fs.FileSystem;
  11. import org.apache.hadoop.fs.LocatedFileStatus;
  12. import org.apache.hadoop.fs.Path;
  13. import org.apache.hadoop.fs.RemoteIterator;
  14. import org.junit.Before;
  15. import org.junit.Test;
  16.  
  17. public class test {
  18. public static void main(String[] args) throws Exception {
  19. //上传
  20.  
  21. //1实例化configuration
  22. Configuration configuration = new Configuration();
  23. //-------------------
  24. //设置一些属性
  25. configuration.set("dfs.replication", "2");//2个副本
  26. configuration.set("dfs.blocksize", "80m");//按照80m切分
  27. //----------------------
  28. //2.获取操作文件系统的客户端实例
  29. FileSystem fs = FileSystem.get(new URI("hdfs://192.168.64.111:9000/"), configuration, "root");
  30. //3.执行上传操作  (src 本地资源 ,dst 上传目的地)
  31. fs.copyFromLocalFile(new Path("C:\\Users\\Administrator\\Desktop\\wc.txt"), new Path("/"));//两次上传一样的会被覆盖
  32. //4.关闭链接
  33. fs.close();
  34. }
  35.  
  36. @Test
  37. public void download() throws Exception{
  38. //下载
  39.  
  40. Configuration configuration = new Configuration();
  41.  
  42. FileSystem fs = FileSystem.get(new URI("hdfs://192.168.64.111:9000"), configuration, "root");
  43.  
  44. fs.copyToLocalFile(false, new Path("/jdk-8u141-linux-x64.tar.gz"), new Path("E://jdk-8u141-linux-x64.tar.gz"), true);
  45.  
  46. fs.close();
  47.  
  48. }
  49. //----------------
  50. FileSystem fs=null;
  51. @Before//在每次运行junit时先执行
  52. public void before() throws Exception{
  53. System.out.println("11111");
  54. Configuration configuration = new Configuration();
  55. fs = FileSystem.get(new URI("hdfs://192.168.64.111:9000/"), configuration, "root");
  56. }
  57. //---------------
  58. @Test
  59. public void delete() throws Exception{//删除
  60. fs.delete(new Path("/弹性表达式.doc"), true);//为true删除文件夹及里面的内容,false只能删除空的文件夹
  61. fs.close();
  62.  
  63. }
  64. @Test
  65. public void mkdir() throws Exception{//创建目录
  66. fs.mkdirs(new Path("/a/b/c"));
  67. fs.close();
  68.  
  69. }
  70.  
  71. @Test
  72. public void list() throws Exception{
  73. FileStatus[] listStatus = fs.listStatus(new Path("/"));//不会递归进去
  74. for (FileStatus fileStatus : listStatus) {
  75. if(fileStatus.isFile()){
  76. System.out.println("文件名:"+fileStatus.getPath().toString());
  77.  
  78. }else{
  79. System.out.println("目录:"+fileStatus.getPath().toString());
  80.  
  81. }
  82.  
  83. }
  84. fs.close();
  85.  
  86. }
  87. @Test
  88. public void list2() throws Exception{//递归遍历出所有文件
  89. RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"), true);//为true,递归遍历
  90. while(listFiles.hasNext()){
  91. LocatedFileStatus next = listFiles.next();
  92. System.out.println(next.toString());
  93. System.out.println("文件块尺寸"+next.getBlockSize());
  94.  
  95. }
  96.  
  97. }
  98.  
  99. }

Java程序操作HDFS的更多相关文章

  1. 大数据-09-Intellij idea 开发java程序操作HDFS

    主要摘自 http://dblab.xmu.edu.cn/blog/290-2/ 简介 本指南介绍Hadoop分布式文件系统HDFS,并详细指引读者对HDFS文件系统的操作实践.Hadoop分布式文件 ...

  2. Java代码操作HDFS测试类

    1.Java代码操作HDFS需要用到Jar包和Java类 Jar包: hadoop-common-2.6.0.jar和hadoop-hdfs-2.6.0.jar Java类: java.net.URL ...

  3. 使用Java API操作HDFS文件系统

    使用Junit封装HFDS import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org ...

  4. Java程序操作数据库SQLserver详解

    数据库基本操作:增删改查(CRUD) crud介绍(增.删.改.查操作) CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Del ...

  5. 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)

    一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ...

  6. Hadoop Java API操作HDFS文件系统(Mac)

    1.下载Hadoop的压缩包 tar.gz   https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/ 2.关联jar包 在 ...

  7. 使用Java Api 操作HDFS

    如题 我就是一个标题党  就是使用JavaApi操作HDFS,使用的是MAVEN,操作的环境是Linux 首先要配置好Maven环境,我使用的是已经有的仓库,如果你下载的jar包 速度慢,可以改变Ma ...

  8. java程序向hdfs中追加数据,异常以及解决方案

    今天在学习hdfs时,遇到问题,就是在向hdfs中追加数据总是报错,在经过好几个小时的努力之下终于将他搞定 解决方案如下:在hadoop的hdfs-sit.xml中添加一下三项 <propert ...

  9. Java 简单操作hdfs API

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6632047118376780295/ 启动Hadoop出现问题:datanode的clusterID 和 name ...

随机推荐

  1. js 鼠标点击页面出现文字

    <script type="text/javascript"> var a_idx = 0; jQuery(document).ready(function($) { ...

  2. Github 简单使用

    第一步:打开官网:https://github.com 注册一个帐户. 第二步:创建仓库 填写仓库的名字和描述. 创建好了之后,点击"Branch master",创建分支--在文 ...

  3. LeetCode844 比较含退格的字符串

    题目描述: 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表退格字符. 示例 1: 输入:S = "ab#c", T = ...

  4. pyi文件是干嘛的?(一文读懂Python的存根文件和类型检查)

    参考资料: https://blog.csdn.net/weixin_40908748/article/details/106252884 https://www.python.org/dev/pep ...

  5. 一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

    1. 问题起因 通过snapshot做跨集群数据同步时,在执行拷贝脚本里没有指定所有者及所有组,导致clone时没有权限,客户端卡死.master一直报错,经过一系列操作后,导致RIT异常. 2. 异 ...

  6. xtrabackup 备份与恢复

    书上摘抄 ---深入浅出mysql 448页  grant reload on *.* to 'backup'@'localhost' identified by '123456'; grant re ...

  7. 【ORA】 ORA-01031:权限不足的问题

    今天创建一个用户,赋予dba权限,在plsql中选择sysdba登录,但是报错 ORA-01031 在网上找了好久最后的解决办法是 不仅仅要有dba权限 还要有这个权限: grant all priv ...

  8. Databricks 第7篇:管理Secret

    有时,访问数据要求您通过JDBC对外部数据源进行身份验证,可以使用Azure Databricks Secret来存储凭据,并在notebook和job中引用它们,而不是直接在notebook中输入凭 ...

  9. sap alv grid 中的delete按键问题

    今天发先一个问题,在使用ALV输出的时候,如果有字段设置为可编辑状态,则会在前面出现选择条,并且,当我们选择一行或者多行的时候,可以用键盘上的DELETE键将行删除!呵呵

  10. CentOS 7 下安装 mysql ,以及用到的命令

    VMware虚拟机装好后,再装个CentOS7系统,以上环境自行百度... 一.Linux下查看mysql是否安装 1.指令ps -ef|grep mysql [root@localhost 桌面]# ...