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

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

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

一、实验目标

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

二、实验要求

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

三、实验内容

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

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

  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目录的基本原理。

运行结果

  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文件或目录的基本原理。需要注意的是,删除文件或目录时,需要确保目标存在并且没有被其他程序或用户锁定,否则会删除失败。

运行结果

  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()方法只返回指定路径下的直接子文件或目录的信息,而不会递归地返回所有子文件或目录的信息。如果要获取所有子文件或目录的信息,需要使用递归算法来实现。

运行结果


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
5天前
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之DataWorks中udf开发完后,本地和在MaxCompute的工作区可以执行函数查询,但是在datawork里报错FAILED: ODPS-0130071:[2,5],是什么原因
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
29 0
|
5天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在 DataWorks 中,使用Oracle作为数据源进行数据映射和查询,如何更改数据源为MaxCompute或其他类型
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
32 1
|
5天前
|
分布式计算 大数据 调度
MaxCompute产品使用合集之大数据计算MaxCompute底层加速查询的原理是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5天前
|
SQL 分布式计算 运维
MaxCompute产品使用合集之在大数据计算MaxCompute中,怎么查看工作空间中正在运行的查询和任务
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5天前
|
存储 分布式计算 DataWorks
MaxCompute产品使用合集之大数据计算MaxCompute默认限制查询结果集的大小为1万条,怎么解开限制
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5天前
|
机器学习/深度学习 SQL 分布式计算
MaxCompute产品使用合集之要撤销一个开发角色对某个表的查询权限,具体的操作步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5天前
|
存储 分布式计算 大数据
MaxCompute操作报错合集之大数据计算MaxCompute将数据存储为字符串后,在查询时发现数据变成了乱码而不是16进制,如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
5天前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之在sql 里嵌套查询时,查询条件带有instr时报错,如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
5天前
|
存储 分布式计算 大数据
[AIGC 大数据基础]浅谈hdfs
[AIGC 大数据基础]浅谈hdfs
|
5天前
|
存储 分布式计算 运维
[AIGC 大数据基础] 浅谈hdfs
[AIGC 大数据基础] 浅谈hdfs
http://www.vxiaotou.com