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");
  }

package com.zy.hdfs;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Iterator; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import org.junit.Before;
import org.junit.Test; public class test {
public static void main(String[] args) throws Exception {
//上传 //1实例化configuration
Configuration configuration = new Configuration();
//-------------------
//设置一些属性
configuration.set("dfs.replication", "2");//2个副本
configuration.set("dfs.blocksize", "80m");//按照80m切分
//----------------------
//2.获取操作文件系统的客户端实例
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.64.111:9000/"), configuration, "root");
//3.执行上传操作  (src 本地资源 ,dst 上传目的地)
fs.copyFromLocalFile(new Path("C:\\Users\\Administrator\\Desktop\\wc.txt"), new Path("/"));//两次上传一样的会被覆盖
//4.关闭链接
fs.close();
} @Test
public void download() throws Exception{
//下载 Configuration configuration = new Configuration(); FileSystem fs = FileSystem.get(new URI("hdfs://192.168.64.111:9000"), configuration, "root"); fs.copyToLocalFile(false, new Path("/jdk-8u141-linux-x64.tar.gz"), new Path("E://jdk-8u141-linux-x64.tar.gz"), true); fs.close(); }
//----------------
FileSystem fs=null;
@Before//在每次运行junit时先执行
public void before() throws Exception{
System.out.println("11111");
Configuration configuration = new Configuration();
fs = FileSystem.get(new URI("hdfs://192.168.64.111:9000/"), configuration, "root");
}
//---------------
@Test
public void delete() throws Exception{//删除
fs.delete(new Path("/弹性表达式.doc"), true);//为true删除文件夹及里面的内容,false只能删除空的文件夹
fs.close(); }
@Test
public void mkdir() throws Exception{//创建目录
fs.mkdirs(new Path("/a/b/c"));
fs.close(); } @Test
public void list() throws Exception{
FileStatus[] listStatus = fs.listStatus(new Path("/"));//不会递归进去
for (FileStatus fileStatus : listStatus) {
if(fileStatus.isFile()){
System.out.println("文件名:"+fileStatus.getPath().toString()); }else{
System.out.println("目录:"+fileStatus.getPath().toString()); } }
fs.close(); }
@Test
public void list2() throws Exception{//递归遍历出所有文件
RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"), true);//为true,递归遍历
while(listFiles.hasNext()){
LocatedFileStatus next = listFiles.next();
System.out.println(next.toString());
System.out.println("文件块尺寸"+next.getBlockSize()); } } }

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. ABP vNext 审计日志获取真实客户端IP

    背景 在使用ABP vNext时,当需要记录审计日志时,我们按照https://docs.abp.io/zh-Hans/abp/latest/Audit-Logging配置即可开箱即用,然而在实际生产 ...

  2. SpringBoot初识日志

    SpringBoot初识日志 1.市面上的日志框架: JUL.JCL.Jboss-logging.logback.log4j.log4j2.slf4j- 日志门面(日志的抽象层) 日志实现 SLF4j ...

  3. SpringBoot对静态资源的映射规则

    在WebMvcAutoConfiguration类中有相对应的方法addResourceHandlers public void addResourceHandlers(ResourceHandler ...

  4. C++ STL getline()函数

    getline() C++11 <string> 函数原型 //(1) istream& getline (istream& is, string& str, ch ...

  5. Canal:同步mysql增量数据工具,一篇详解核心知识点

    老刘是一名即将找工作的研二学生,写博客一方面是总结大数据开发的知识点,一方面是希望能够帮助伙伴让自学从此不求人.由于老刘是自学大数据开发,博客中肯定会存在一些不足,还希望大家能够批评指正,让我们一起进 ...

  6. 探索微软开源Python自动化神器Playwright

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...

  7. Python安装教程之anaconda篇

    [导读]我们知道,Python的功能非常强大.那么对于迫切想学习Python的新手同学来说,第一件事情可能需要了解python是什么?能用来做什么?语法结构是怎样的?这些我们几句话很难介绍清楚,后续会 ...

  8. JavaScript小案例-阶乘!

    JavaScript小案例-阶乘! 阶乘:就是像台阶一样一阶一阶的,从高阶到低阶,依次乘下来!代码超少!容易理解! // factorial 阶乘 // 如果 function factorial(n ...

  9. SpringBoot深入理解

    SpringBoot深入理解 项目打包SpringBoot启动过程 当使用打包时,会下载org-springframework-boot-loader的jar,并且不会放在lib存放的第三方jar包文 ...

  10. kettle 连接oracle12c问题解决办法:

    在oracle的安装文件目录......\NETWORK\ADMIN\sqlnet.ora 文件中添加该语句:SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8window ...