云计算技术 实验四 HDFS操作方法和基础编程

这篇具有很好参考价值的文章主要介绍了云计算技术 实验四 HDFS操作方法和基础编程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考资料为:

教材代码-林子雨编著《大数据基础编程、实验和案例教程(第2版)》教材所有章节代码_厦大数据库实验室博客

1.实验学时

4学时

2.实验目的

  • 熟悉HDFS的基本shell命令
  • 熟悉HDFS的web管理
  • 掌握HDFS编程实践

3.实验内容

(一)参考实验指南的内容,完成相关的HDFS的基本shell命令。

先启动hadoop:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

 输入命令查看hdfs dfs支持的操作:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

 实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

 实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

 查看具体命令的作用:

 实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

 先新建文件夹:

 实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

运行命令显示HDFS与当前用户对应目录下的内容:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

创建input目录:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

删除input文件:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

创建一个xml文件

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

复制文件到生成的input文件之中:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

查看HDFS中txt文件的内容:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

将txt文件移动到其他文件夹下:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

后面查看:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

(二)查看HDFS的网页管理界面。请描述网页界面中的各个参数的名称。

查看HDFS网页管理界面:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

(三)完成eclipse的安装,在eclipse中创建项目,配置所需要的jar包,编写一个可以和HDFS相交互的Java应用程序。

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

安装完成之后进入:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

 进行对应包的调用之后,开始编写函数:下面为java代码

import java.io.IOException;
import java.io.PrintStream;
import java.net.URI;
 
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
 
/**
 * 过滤掉文件名满足特定条件的文件 
 */
class MyPathFilter implements PathFilter {
     String reg = null; 
     MyPathFilter(String reg) {
          this.reg = reg;
     }
     public boolean accept(Path path) {
        if (!(path.toString().matches(reg)))
            return true;
        return false;
    }
}
/***
 * 利用FSDataOutputStream和FSDataInputStream合并HDFS中的文件
 */
public class MergeFile {
    Path inputPath = null; //待合并的文件所在的目录的路径
    Path outputPath = null; //输出文件的路径
    public MergeFile(String input, String output) {
        this.inputPath = new Path(input);
        this.outputPath = new Path(output);
    }
    public void doMerge() throws IOException {
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS","hdfs://localhost:9000");
          conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");
        FileSystem fsSource = FileSystem.get(URI.create(inputPath.toString()), conf);
        FileSystem fsDst = FileSystem.get(URI.create(outputPath.toString()), conf);
                //下面过滤掉输入目录中后缀为.abc的文件
        FileStatus[] sourceStatus = fsSource.listStatus(inputPath,
                new MyPathFilter(".*\\.abc")); 
        FSDataOutputStream fsdos = fsDst.create(outputPath);
        PrintStream ps = new PrintStream(System.out);
        //下面分别读取过滤之后的每个文件的内容,并输出到同一个文件中
        for (FileStatus sta : sourceStatus) {
            //下面打印后缀不为.abc的文件的路径、文件大小
            System.out.print("路径:" + sta.getPath() + "    文件大小:" + sta.getLen()
                    + "   权限:" + sta.getPermission() + "   内容:");
            FSDataInputStream fsdis = fsSource.open(sta.getPath());
            byte[] data = new byte[1024];
            int read = -1;
 
            while ((read = fsdis.read(data)) > 0) {
                ps.write(data, 0, read);
                fsdos.write(data, 0, read);
            }
            fsdis.close();          
        }
        ps.close();
        fsdos.close();
    }
    public static void main(String[] args) throws IOException {
        MergeFile merge = new MergeFile(
                "hdfs://localhost:9000/user/hadoop/",
                "hdfs://localhost:9000/user/hadoop/merge.txt");
        merge.doMerge();
    }
}

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

 实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

 实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

 实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

 实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

(四)生成jar包,部署相关的应用程序。

先生成一个文件夹存放信息:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

之后右键工作区,弹出export:

 实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

之后在弹出的界面中选择java包下的文件,进入后填好运行的java类和将要保存到的包中:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

之后文件开始打包:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

打包完成之后,在对应的文件夹下发现打包好的文件:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

删除merge文件之后,运行这个打包好的文件:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

之后执行命令查看文件信息:

实验4 hdfs操作方法和基础编程(二),云计算,hdfs,云计算,大数据

4.思考题

(一)Hadoop中HDFS包含哪些命令,这些命令各自代表什么意思?

1.创建目录

hdfs dfs -mkdir /

2.查看目录下载文件

hdfs dfa -ls /     hdfs dfs -ls /

3. 上传本地文件

hdfs dfs -put a.txt /

4.删除文件/目录

删除文件hdfs dfs -rm /test/a.txt  删除目录hdfs dfs -rm -r /test

5. 复制文件

hdfs dfs -cp /test/a.txt /

(二)Hadoop创建的应用程序,需要导入哪些安装包,这些安装包里面有什么功能?

1. hadoop-common-2.7.1.jar     2. haoop-hdfs-2.7.1.jar
3.haoop-hdfs-nfs-2.7.1.jar;   4. haoop-nfs-2.7.1.jar

安装包的内部对应的目录有着以下的功能:

sbin目录:存放启动或停止hadoop相关服务的脚本

bin目录:存放对hadoop相关服务(HDFS,YARN)进行操作的脚本

etc目录:hadoop的配置文件目录,存放hadoop的配置文件

share目录:存放hadoop的依赖jar包和文档,文档可以被删除掉

5、lib目录:存放hadoop的本地库(对数据进行压缩解压缩功能)

5.实验结论和体会

1.运行hdfs的时候,需要注意先启动hadoop系统,如果不清楚对应的hdfs的操作,可以使用./bin/hdfs dfs,命令查看。

2.在ecplise导入jar包的时候,需要注意导入包的数量,注意不要漏导入包。

3.在运行完成主程序之后,需要在hdfs上查看是否成功运行生成对应文件。文章来源地址https://www.toymoban.com/news/detail-717974.html

到了这里,关于云计算技术 实验四 HDFS操作方法和基础编程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据编程实验一:HDFS常用操作和Spark读取文件系统数据

    这是我们大数据专业开设的第二门课程——大数据编程,使用的参考书是《Spark编程基础》,这门课跟大数据技术基础是分开学习的,但这门课是用的我们自己在电脑上搭建的虚拟环境进行实验的,不是在那个平台上,而且搭建的还是伪分布式,这门课主要偏向于有关大数据

    2024年04月10日
    浏览(54)
  • 大数据技术原理及应用课实验2 :熟悉常用的HDFS操作

    实验2  熟悉常用的HDFS操作 目录 实验2  熟悉常用的HDFS操作 一、实验目的 二、实验平台 三、实验步骤(每个步骤下均需有运行截图) (一)编程实现以下功能,并利用Hadoop提供的Shell命令完成相同任务: (1)向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,则

    2024年04月14日
    浏览(112)
  • 熟悉常用的HDFS操作(大数据技术原理与应用-第三章实验)

    首先启动Hadoop,命令如下: 在终端输入如下命令,查看 hdfs dfs 总共支持哪些操作: 上述命令执行后,会显示如下的结果: 如果显示 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable ,说明环境变量 JAVA_LIBRARY_PATH 并未定义,首

    2024年02月01日
    浏览(50)
  • 实验二 HDFS的Shell命令操作,和HDFS的API操作

    来自博主卷毛迷你猪的授权 ,這是我的老師的博客多多關注 掌握 Hadoop 中 HDFS 的 Shell 命令操作 掌握 Hadoop 中 HDFS 的API操作  项目1:HDFS常见命令练习  项目2:HDFS命令的综合运用实践  项目3:HDFS的API使用实践  项目4:HDFS的API单元测试程序和更多思考(选做)  HDFS是

    2024年04月26日
    浏览(42)
  • 实验二、熟悉常用的HDFS操作(HDFS JavaAPI之读取/上传/删除文件)

    理解HDFS在Hadoop体系结构中的角色 熟练使用HDFS操作常用的shell命令 熟悉HDFS操作常用的Java API 操作系统:CentOS 8 Hadoop版本:3.3.1 jdk版本:1.8 Java IDE:Eclipse 1. 使用Hadoop命令操作分布式文件系统。 新建目录 在本地和hadoop中分别创建文件夹: 在本地创建目录: Hadoop创建目录: 上

    2023年04月08日
    浏览(59)
  • 实验2熟悉常用的HDFS操作

    (1)理解HDFS在Hadoop体系结构中的角色; (2)熟练使用HDFS操作常用的Shell命令; (3)熟悉HDFS操作常用的Java API。 (1)操作系统:Linux; (2)Hadoop版本:2.7.4 ; (3)JDK版本1.8; (4)Java IDE:eclipse  。 (一)编程实现以下功能,并利用Hadoop提供的Shell命令完成相同任务:

    2023年04月18日
    浏览(42)
  • 大数据实验 实验二:熟悉HDFS常用操作

    附件中有word版本的实验报告 理解HDFS在Hadoop体系结构中的角色。 熟练使用HDFS操作常用的Shell命令。 熟悉HDFS操作常用的Java API。 Oracle VM VirtualBox虚拟机 系统版本centos7 JDK1.8版本 Hadoop-3.1.3 Windows11 Java IDE:IDEA 1.向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户

    2024年04月12日
    浏览(40)
  • 大数据 | 实验一:大数据系统基本实验 | 熟悉常用的HDFS操作

    1 )理解 HDFS 在 Hadoop 体系结构中的角色。 2 )熟练使用 HDFS 操作常用的 shell 命令。 3 )熟悉 HDFS 操作常用的 Java API。 1 )操作系统:Linux; 2 )Hadoop 版本:3.2.2; 3 )JDK 版本:1.8; 4 )Java IDE:Eclipse。 编程实现 以下功能,并利用 Hadoop 提供的 Shell 命令 完成相同任务 1)向

    2024年02月02日
    浏览(41)
  • 云计算与大数据实验四 HDFS编程

    一、实验目的 深入理解 HDFS 工作原理和编程思想 使用 HDFS 的 Java 接口进行文件的读写 使用 HDFS 的 Java 接口进行之上传文件 使用 HDFS 的 Java 接口进行之删除文件 二、实验内容 HDFS 的 Java API 接口进行文件的读写操作 HDFS 的 Java API 接口进行之上传文件操作 HDFS 的 Java API 接口进

    2024年02月08日
    浏览(51)
  • Hadoop原理与技术——hdfs命令行基本操作

    点击链接查看文档 一、实验目的 熟悉hdfs命令行基本操作 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 三、实验内容 1:hdfs常见命令: (1)查看帮助:hdfs dfs -help (2)查看当前目录信息:hdfs dfs -ls / (3)创建文件夹:hdfs dfs -mkdir /文件夹名 (4)上传文件:

    2023年04月16日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包