HDFS的API案例实操

简介: HDFS的API案例实操

客户端代码模板



  1. 获取一个客户端对象
  2. 执行相关的操作
  3. 关闭资源


初始化操作


private FileSystem fs;


获取一个客户端对象



@Before
    public void init() throws URISyntaxException, IOException, InterruptedException {
//       连接集群NN地址
        URI uri = new URI("hdfs://hadoop102:8020");
//        创建一个配置文件
        Configuration configuration = new Configuration();
//        用户
        String user = "atguigu";
//        获取客户端对象
        fs = FileSystem.get(uri, configuration,user);
    }


关闭资源



@After
    public void close() throws IOException {
        //        关闭资源
        fs.close();
    }


创建目录



@Test
    public void testmkdir() throws URISyntaxException, IOException, InterruptedException {
//        创建一个文件夹
        fs.mkdirs(new Path("/xiyou/huaguoshan1"));
    }


客户端上传文件到HDFS



@Test
    public void testPut() throws IOException {
//        参数解读
        /*
        * 参数一表示删除原数据
        * 参数二表示是否允许覆盖
        * 参数三源路径
        * 参数四目标地址路径
        *
        * */
        fs.copyFromLocalFile(false,true,new Path("D:\\sunwukong.txt"),new Path("/xiyou/huaguoshan/"));
    }


客户端从HDFS下载文件到本地



//    文件下载
    @Test
    public void testGet() throws IOException {
        /*
        * 参数一:源文件是否删除
        * 参数二:源文件的路径
        * 参数三:目的地址的路径 window
        * 参数四:校验
        * */
        fs.copyToLocalFile(false,new Path("/xiyou/huaguoshan/"),new Path("D:\\"),false);
    }


文件删除



//    文件删除
    @Test
    public void testRm() throws IOException {
        /*
        * 第一个参数:要删除的路径
        * 第二个参数:是否递归删除
        * */
        fs.delete(new Path("/jdk-8u212-linux-x64.tar.gz"),false);
//    删除空目录
//        fs.delete(new Path("/xiyou"),false);
//    删除非空目录
        fs.delete(new Path("/xiyou"),true);
    }

判断文件类型


//    判断是文件夹还是文件
    @Test
    public void testFile() throws IOException {
        FileStatus[] listStatus = fs.listStatus(new Path("/"));
        for (FileStatus status : listStatus) {
            if (status.isFile()) {
                System.out.println("文件:" + status.getPath().getName());
            } else {
                System.out.println("目录:" + status.getPath().getName());
            }
        }
    }
相关文章
|
5月前
|
监控 前端开发 JavaScript
实战篇:商品API接口在跨平台销售中的有效运用与案例解析
随着电子商务的蓬勃发展,企业为了扩大市场覆盖面,经常需要在多个在线平台上展示和销售产品。然而,手工管理多个平台的库存、价格、商品描述等信息既耗时又容易出错。商品API接口在这一背景下显得尤为重要,它能够帮助企业在不同的销售平台之间实现商品信息的高效同步和管理。本文将通过具体的淘宝API接口使用案例,展示如何在跨平台销售中有效利用商品API接口,以及如何通过代码实现数据的统一管理。
|
5月前
|
Java API Maven
HDFS的API操作
HDFS的API操作
56 0
|
5月前
|
API
GEE案例分析——利用sentinel-3数据计算空气污染指数(Air Pollution Index,简称API)
GEE案例分析——利用sentinel-3数据计算空气污染指数(Air Pollution Index,简称API)
177 0
|
5月前
|
SQL Java 程序员
Java 8中的Stream API:简介与实用案例
【5月更文挑战第23天】本文将深入探讨Java 8中的Stream API,这是一种能够极大提升Java程序员生产力的新特性。我们将从基础概念开始,然后通过一些实用的案例来展示如何使用Stream API进行数据处理和操作。无论你是Java的初学者还是经验丰富的开发者,本文都将为你提供有价值的信息。
|
8天前
|
API
Netty API网关实操系列(三)
Netty API网关实操系列(三)
|
8天前
|
存储 运维 架构师
Netty API网关实操系列(二)
Netty API网关实操系列(二)
|
8天前
|
安全 应用服务中间件 API
Netty API网关实操系列(一)
Netty API网关实操系列(一)
|
5月前
|
存储 分布式计算 监控
Hadoop【基础知识 01+02】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
274 2
|
2月前
|
存储 Linux API
Linux源码阅读笔记08-进程调度API系统调用案例分析
Linux源码阅读笔记08-进程调度API系统调用案例分析
|
2月前
|
JSON 数据管理 关系型数据库
【Dataphin V3.9】颠覆你的数据管理体验!API数据源接入与集成优化,如何让企业轻松驾驭海量异构数据,实现数据价值最大化?全面解析、实战案例、专业指导,带你解锁数据整合新技能!
【8月更文挑战第15天】随着大数据技术的发展,企业对数据处理的需求不断增长。Dataphin V3.9 版本提供更灵活的数据源接入和高效 API 集成能力,支持 MySQL、Oracle、Hive 等多种数据源,增强 RESTful 和 SOAP API 支持,简化外部数据服务集成。例如,可轻松从 RESTful API 获取销售数据并存储分析。此外,Dataphin V3.9 还提供数据同步工具和丰富的数据治理功能,确保数据质量和一致性,助力企业最大化数据价值。
114 1
下一篇
无影云桌面