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());
            }
        }
    }
相关文章
|
7月前
|
监控 前端开发 JavaScript
实战篇:商品API接口在跨平台销售中的有效运用与案例解析
随着电子商务的蓬勃发展,企业为了扩大市场覆盖面,经常需要在多个在线平台上展示和销售产品。然而,手工管理多个平台的库存、价格、商品描述等信息既耗时又容易出错。商品API接口在这一背景下显得尤为重要,它能够帮助企业在不同的销售平台之间实现商品信息的高效同步和管理。本文将通过具体的淘宝API接口使用案例,展示如何在跨平台销售中有效利用商品API接口,以及如何通过代码实现数据的统一管理。
|
1月前
|
JSON BI API
商城上货API接口的实战案例
在商城上货过程中,API接口扮演着至关重要的角色。以下是对商城上货API接口的实战分析,涵盖其主要功能、类型、安全性以及实战案例等方面。
|
1月前
|
XML 数据可视化 API
商品详情数据实战案例,API接口系列
淘宝商品详情数据在电商领域具有广泛的应用价值,而淘宝商品详情API接口则为开发者提供了获取这些数据的重要途径。通过合理利用这些接口和数据,可以提升业务效率、优化用户体验,为电商行业的发展注入新的活力。
|
7月前
|
SQL Java 程序员
Java 8中的Stream API:简介与实用案例
【5月更文挑战第23天】本文将深入探讨Java 8中的Stream API,这是一种能够极大提升Java程序员生产力的新特性。我们将从基础概念开始,然后通过一些实用的案例来展示如何使用Stream API进行数据处理和操作。无论你是Java的初学者还是经验丰富的开发者,本文都将为你提供有价值的信息。
|
2月前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
41 1
|
7月前
|
存储 分布式计算 监控
Hadoop【基础知识 01+02】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
331 2
|
3月前
|
API
Netty API网关实操系列(三)
Netty API网关实操系列(三)
|
3月前
|
存储 运维 架构师
Netty API网关实操系列(二)
Netty API网关实操系列(二)
|
3月前
|
安全 应用服务中间件 API
Netty API网关实操系列(一)
Netty API网关实操系列(一)
|
4月前
|
存储 Linux API
Linux源码阅读笔记08-进程调度API系统调用案例分析
Linux源码阅读笔记08-进程调度API系统调用案例分析