【大数据开发技术】实验05-HDFS目录与文件的创建删除与查询操作

news2024/11/20 9:10:42

文章目录

  • HDFS目录与文件的创建删除与查询操作
  • 一、实验目标
  • 二、实验要求
  • 三、实验内容
  • 四、实验步骤
  • 附:系列文章

HDFS目录与文件的创建删除与查询操作

一、实验目标

  1. 熟练掌握hadoop操作指令及HDFS命令行接口
  2. 掌握HDFS目录与文件的创建方法和文件写入到HDFS文件的方法
  3. 掌握HDFS目录与文件的删除方法
  4. 掌握查询文件状态信息和目录下所有文件的元数据信息的方法

二、实验要求

  1. 给出主要实验步骤成功的效果截图。
  2. 要求分别在本地和集群测试,给出测试效果截图
  3. 对本次实验工作进行全面的总结。
  4. 完成实验内容后,实验报告文件名加上学号姓名。

三、实验内容

  1. 创建目录,并将一个本地文件写入到该目录中,实现效果参考下图:
    1

  2. 删除文件与目录,实现效果参考下图:
    2

  3. 查询文件状态信息和目录下所有文件的元数据信息,实现效果参考下图:
    3

四、实验步骤

  1. 创建目录,并将一个本地文件写入到该目录中

程序设计

package com.wjw.cslg;

import java.io.IOException;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class WJW01 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Configuration conf = new Configuration();
        FileSystem fs = null;
        args = new String[2];
        args[0] = "hdfs://master:9000/wjw02.txt";
        args[1] = "hdfs://master:9000/wjw02";
        try{
            for(int i=0; i<args.length; i++){
                fs = FileSystem.get(URI.create(args[i]), conf);
                fs.mkdirs(new Path(args[i]));
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }

}

程序分析

本程序是一个Java程序,使用了Hadoop的API,主要功能是在HDFS上创建指定路径的目录。

首先,程序利用Configuration类创建一个配置对象conf,用于指定Hadoop的配置信息。然后利用FileSystem类创建一个文件系统对象fs,用于与HDFS交互。args数组表示用户在命令行中传入的参数,其中args[0]表示要创建的路径,args[1]表示要创建的目录名。

接下来,程序进入for循环语句,遍历args数组中的所有路径。在循环体中,程序调用FileSystem的get()方法获取一个文件系统对象,该方法的参数是一个URI对象和一个配置对象conf。URI对象表示HDFS上的路径,可以通过URI.create()方法创建。创建好文件系统对象后,程序调用mkdirs()方法创建指定的目录。

最后,程序捕获可能的IOException异常,并打印出错误信息。

总体来说,本程序比较简单,主要是熟悉Hadoop API的使用和理解创建HDFS目录的基本原理。

运行结果

4

  1. 删除文件与目录

程序设计

package com.wjw.cslg;

import java.io.IOException;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class WJW02 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Configuration conf = new Configuration();
        FileSystem fs = null;
        args = new String[2];
        args[0] = "hdfs://master:9000/wjw02.txt";
        args[1] = "hdfs://master:9000/wjw02";
        try{
            for(int i=0; i<args.length; i++){
                fs = FileSystem.get(URI.create(args[i]), conf);
                fs.delete(new Path(args[i]));
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }

}

程序分析

本程序是一个Java程序,使用了Hadoop的API,主要功能是在HDFS上删除指定路径的文件或目录。

首先,程序利用Configuration类创建一个配置对象conf,用于指定Hadoop的配置信息。然后利用FileSystem类创建一个文件系统对象fs,用于与HDFS交互。args数组表示用户在命令行中传入的参数,其中args[0]表示要删除的路径,args[1]表示要删除的目录名。

接下来,程序进入for循环语句,遍历args数组中的所有路径。在循环体中,程序调用FileSystem的get()方法获取一个文件系统对象,该方法的参数是一个URI对象和一个配置对象conf。URI对象表示HDFS上的路径,可以通过URI.create()方法创建。创建好文件系统对象后,程序调用delete()方法删除指定的文件或目录。

最后,程序捕获可能的IOException异常,并打印出错误信息。

总体来说,本程序也比较简单,主要是熟悉Hadoop API的使用和理解删除HDFS文件或目录的基本原理。需要注意的是,删除文件或目录时,需要确保目标存在并且没有被其他程序或用户锁定,否则会删除失败。

运行结果

5

  1. 查询文件状态信息和目录下所有文件的元数据信息

程序设计

package com.wjw.cslg;
import java.io.*;
import org.apache.hadoop.fs.*;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.io.*;
import org.apache.hadoop.conf.*;
import java.net.*;
public class WJW03 {
 
public static void main(String[] args) {
    // TODO Auto-generated method stub
	Configuration conf=new Configuration();
	args=new String[1];
    args[0]="hdfs://master:9000/wjw01.txt";
    conf.set("fs.DefailtFS","hdfs://master:9000/");
    FileSystem fs=null;
    try{
	    fs=FileSystem.get(URI.create(args[0]),conf);
	    FileStatus filestatus[]=fs.listStatus(new Path(args[0]));
	    for(int i=0;i<filestatus.length;i++){
	        System.out.println(filestatus[i]);
        }
    }catch(IOException e){
        e.printStackTrace();
	}
}

程序分析

本程序是一个Java程序,使用了Hadoop的API,主要功能是在HDFS上获取指定路径下的所有文件或目录。

首先,程序利用Configuration类创建一个配置对象conf,用于指定Hadoop的配置信息。接着,程序使用URI.create()方法创建一个URI对象并将其作为参数传递给FileSystem.get()方法,该方法返回一个FileSystem对象,用于与HDFS交互。args数组表示用户在命令行中传入的参数,其中args[0]表示要获取的路径。

接下来,程序调用FileSystem的listStatus()方法获取指定路径下的所有文件或目录的信息,并将结果存储在一个FileStatus数组中。最后,程序遍历该数组并输出每个文件或目录的信息到控制台。

需要注意的是,程序在创建配置对象conf时,使用了set()方法设置了fs.DefaultFS属性,用于指定Hadoop集群的默认文件系统地址,即"fs.defaultFS",而不是"fs.DefailtFS"(注意单词拼写的正确性)。

总体来说,本程序也比较简单,主要用于熟悉Hadoop API的使用和理解获取HDFS路径下文件或目录信息的基本原理。需要注意的是,listStatus()方法只返回指定路径下的直接子文件或目录的信息,而不会递归地返回所有子文件或目录的信息。如果要获取所有子文件或目录的信息,需要使用递归算法来实现。

运行结果

6

附:系列文章

实验文章目录直达链接
实验01Hadoop安装部署https://want595.blog.csdn.net/article/details/132767284
实验02HDFS常用shell命令https://want595.blog.csdn.net/article/details/132863345
实验03Hadoop读取文件https://want595.blog.csdn.net/article/details/132912077
实验04HDFS文件创建与写入https://want595.blog.csdn.net/article/details/133168180
实验05HDFS目录与文件的创建删除与查询操作https://want595.blog.csdn.net/article/details/133168734

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1046346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试工作步骤详情

软件测试步骤按照研发阶段一般分为5个部分&#xff1a;单元测试、集成测试、确认测试、系统测试、验收测试&#xff0c;下面将不同阶段需要的一些工作内容做一下梳理希望可以帮助到大家。 一、单元测试的内容&#xff1a;&#xff08;白盒为主&#xff0c;黑盒为辅&#xff09;…

业务安全情报23期 | 国庆前夕,又成功狙击一个倒卖机票的不法团伙

中秋国庆临近&#xff0c;热门航线机票预定量暴增。顶象防御云业务安全情报中心&#xff0c;监测到一个不法团伙进行虚假占座攻击&#xff0c;倒卖热门航班机票。在顶象协助下&#xff0c;该航空公司有效阻截多日的攻击&#xff0c;保障乘客购票利益。 热门航班遭到“倒票”攻击…

IPV6知识总结

目录 一、IPV6与IPV4相比改进之处1. “无限“的地址空间2. 层次化的地址结构3. 即插即用4. 简化了报头头部5.保证端到端网络的完整性6.安全性增强7.增强QoS特性 二、IPV6的规则IPV6地址主要分为了三类&#xff1a;单播地址&#xff0c;组播地址&#xff0c;任播地址单播地址组播…

基于低代码平台少量编码完成软件开发

一、低代码平台是什么 低代码平台简单来说就是只需要少量代码、甚至无需代码即可完成系统开发。 过去开发一套系统都需要软件工程师通过代码进行开发&#xff0c;所以任何一个系统的开发都需要大量的软件工程师资源&#xff0c;使得很多企业谈到系统开发就想到了高额的成本投入…

【MySQL数据库】基本命令操作及语句总结

目录 前言 一、数据库连接 二、创建数据库 2.1 创建数据库 2.2 删除数据库 2.3 查看数据库 2.4 使用数据库 三、创建数据表 3.1 创建数据表 3.2 删除数据表 3.3 插入语句 3.4 查看数据表 四、数据库操作 4.1 显示列 4.2 显示索引 4.3 修改表名 4.4 修改数据类…

CPK分析工具页面设计源码

效果图: 父组件 <template><div class="app-container home"><!-- <el-divider />--><el-rowtype="flex"justify="space-around"class="row-bg"style="margin-bottom: 10px"><el-col…

uni-app 之 Toast 消息提示

uni-app 之 Toast 消息提示 image.png <template> <view class"content"> <u-button click"showToast">Toast 消息提示 </u-button><u-toast ref"uToast"></u-toast></view></template> <…

SAP CDS->ODATA->POSTMAN test (二)

/IWFND/GW_CLIENT&#xff1a;测试OData服务 /IWFND/MAINT_SERVICE&#xff1a;激活并维护服务 SEGW&#xff1a;OData建模 /iwfnd/error_log&#xff1a;分析错误 增加注释&#xff1a; OData.publish: true 输入/O/IWFND/MAINT_SERVICE&#xff0c;添加服务 添加所选的服务…

realloc函数应用IO泄露体验

本题主要介绍realloc函数&#xff0c;平时我们使用realloc最多便是在打malloc_hook–>onegadget的时候&#xff0c;使用realloc_hook调整onegadget的栈帧&#xff0c;从而getshell。 在realloc函数中&#xff0c;也能像malloc一样创建堆&#xff0c;并且比malloc麻烦一些&a…

C# Winform编程(1)基础篇

C# Winform编程&#xff08;1&#xff09;基础篇 Visual Studio 2022开发环境新建WinForm应用项目WinForm代码结构新键窗体文件从Form1启动Form2修改控件属性退出程序和关闭窗口 Visual Studio 2022开发环境新建WinForm应用项目 WinForm代码结构 Program.cs 程序入口 Applicati…

AMQP[RabbitMQ]小结

消息队列: 组成: 交换器,队列,绑定 作用:异步处理,削峰,服务解耦 交换器 RabbitMQ常见的exchange(交换器)类型: direct–路由键完全匹配才可以 fanout–广播 topic --主题,模糊匹配路由键 队列 messagequeue: 组成: 路由键 routine-key—决定消息发给谁 优先级prio…

vue 普通组件的 局部注册

vue 普通组件的 注册 11 Vue2_3入门到实战-配套资料\01-随堂代码素材\day03\素材\00-准备代码\小兔鲜首页静态页\src

工厂与观察者模式

工厂模式介绍 通过一个加工厂&#xff0c;在这个工厂中添加对应材料&#xff0c;我们就可以得到想要的东西&#xff0c;在程序设计中&#xff0c;这种模式就叫做工厂模式&#xff0c;工厂生成出的产品就是某个类的实例&#xff0c;也就是对象。 关于工厂模式一共有三种&#…

【C++11】左值引用右值引用,移动构造的使用

&#x1f30f;博客主页&#xff1a; 主页 &#x1f516;系列专栏&#xff1a; C ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ &#x1f60d;期待与大家一起进步&#xff01; 文章目录 一、左值与右值二、 引用总结&#xff1a;1.左值&#xff1a;2.右值&#xff1a; 三、…

微服务调用没有返回值,无法组成对象,但是会有feign的信息

事件起因 还是那个项目&#xff0c;至少对于我来说要学习的东西其实还是挺多的。 需求 员工信息管理&#xff0c;员工简历&#xff0c;导出功能&#xff0c;需要去联查员工的各项信息&#xff0c;其中&#xff0c;涉及到微服务的之间的操作出现了问题&#xff0c;目前主要的…

时空碰撞之当Leaflet遇到Echarts

前言 在之前的博客中&#xff0c;有介绍如何进行Leaflet展示的&#xff0c;也有介绍Echarts如何进行高效图表展示的。针对一些时空类的场景&#xff0c;比如需要跟随GIS地图一起进行图表展示&#xff0c;如何在地图上集成图表插件。本文将以常用的Leaflet为例&#xff0c;重点讲…

JAVA中使用CompletableFuture进行异步编程

JAVA中使用CompletableFuture进行异步编程 1、什么是CompletableFuture CompletableFuture 是 JDK8 提供的 Future 增强类&#xff0c;CompletableFuture 异步任务执行线程池&#xff0c;默认是把异步任 务都放在 ForkJoinPool 中执行。 在这种方式中&#xff0c;主线程不会…

I/O

IO 流简介 IO 即 Input/Output&#xff0c;输入和输出。数据输入到计算机内存的过程即输入&#xff0c;反之输出到外部存储&#xff08;比如数据库&#xff0c;文件&#xff0c;远程主机&#xff09;的过程即输出。IO 流在 Java 中分为输入流和输出流&#xff0c;而根据数据的…

DAY47 多表外键联系

一、表设计之关联关系 外键&#xff1a;主键是用于表示数据的唯一性字段&#xff0c;外键是用于建立关联关系的字段&#xff0c;值通常指向另一张表的主键 一对一 什么是一对一的关系&#xff1a;有A,B两张表&#xff0c;A表中一条数据对应B表中的一条数据&#xff0c;称之为一…

Java 设计模式——抽象工厂模式

目录 1.概念2.结构3.实现4.优缺点5.使用场景6.模式扩展7.JDK源码解析——Collection.iterator方法 1.概念 &#xff08;1&#xff09;Java 设计模式——工厂方法模式中考虑的是一类产品的生产&#xff0c;如畜牧场只养动物、电视机厂只生产电视机等。这些工厂只生产同种类产品…