大数据实验 实验二:熟悉HDFS常用操作

这篇具有很好参考价值的文章主要介绍了大数据实验 实验二:熟悉HDFS常用操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大数据技术原理与应用 课程实验报告 熟悉HDFS常用操作

附件中有word版本的实验报告

实验目的:

  1. 理解HDFS在Hadoop体系结构中的角色。
  2. 熟练使用HDFS操作常用的Shell命令。
  3. 熟悉HDFS操作常用的Java API。

实验环境:

  1. Oracle VM VirtualBox虚拟机
  2. 系统版本centos7
  3. JDK1.8版本
  4. Hadoop-3.1.3
  5. Windows11
  6. Java IDE:IDEA

实验内容与完成情况:

一、 利用Hadoop提供的Shell命令完成下列任务

1.向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件。

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

2.从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名。

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

3.将HDFS中指定文件的内容输出到终端中。

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

4.显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;执行下列命令。

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

5.给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息。

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

6.提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录。

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop
熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

7.提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录。

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop
熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

8.向HDFS中指定的文件追加内容,由用户指定将内容追加到原有文件的开头或结尾。

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

9.删除HDFS中指定的文件。

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

10.在HDFS中,将文件从源路径移动到目的路径。

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

二、 编程实现一个类“MyFSDataInputStream”,该类继承“org.apache.hadoop.fs.FSDataInputStream”,要求如下:

(1) 实现按行读取HDFS中指定文件的方法“readLine()”,如果读到文件末尾,则返回空,否则返回文件一行的文本。
(2) 实现缓存功能,即利用“MyFSDataInputStream”读取若干字节数据时,首先查找缓存,如果缓存中有所需数据,则直接由缓存提供,否则从HDFS中读取数据。

package Main;



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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;

public class main extends FSDataInputStream {
    public main(InputStream in) {
        super(in);
    }

    /**
     * 实现按行读取 每次读入一个字符,遇到"\n"结束,返回一行内容
     */
    public static String readline(BufferedReader br) throws IOException {

        char[] data = new char[1024];
        int read = -1;
        int off = 0;
        // 循环执行时,br 每次会从上一次读取结束的位置继续读取
        // 因此该函数里,off 每次都从 0 开始
        while ((read = br.read(data, off, 1)) != -1) {
            if (String.valueOf(data[off]).equals("\n")) {
                off += 1;
                break;
            }
            off += 1;
        }
        if (off > 0) {
            return String.valueOf(data);
        } else {
            return null;
        }
    }

    /**
     * 读取文件内容
     */
    public static void cat(Configuration conf, String remoteFilePath) throws IOException {
        FileSystem fs = FileSystem.get(conf);
        Path remotePath = new Path(remoteFilePath);
        FSDataInputStream in = fs.open(remotePath);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String line = null;
        while ((line = main.readline(br)) != null) {
            System.out.println(line);
        }
        br.close();
        in.close();
        fs.close();
    }

    /**
     * 主函数
     */
    public static void main(String[] args) {
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS", "hdfs://localhost:8020");
        String remoteFilePath = "/user/input/test.txt"; // HDFS 路径

        try {
            main.cat(conf, remoteFilePath);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

三、 查看Java帮助手册或其它资料,用“java.net.URL”和“org.apache.hadoop.fs.FsURLStreamHandlerFactory”编程完成输出HDFS中指定文件的文本到终端中

package Main;

import java.io.InputStream;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;


public class main  {
    static {
        URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
    }

    /**
     * 主函数
     */
    public static void main(String[] args) throws Exception {
        String remoteFilePath = "hdfs:///user/input/test.txt"; // HDFS 文件
        InputStream in = null;
        try {
            /* 通过 URL 对象打开数据流,从中读取数据 */
            in = new URL(remoteFilePath).openStream();
            IOUtils.copyBytes(in, System.out, 4096, false);
        } finally {
            IOUtils.closeStream(in);
        }
    }
}

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop


出现的问题

问题一

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop
在使用 Hadoop jar untuil.jar 运行jar文件时,出现无法连接hadoop的情况
网上有的说法是因为hadoop系统配置有问题,通过

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop
发现hadoop运行正常

问题二

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop
发现在代码中使用的是9000端口.查看本机配置的core文件中是8020

熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

修改代码后仍无法运行
发现core配置文件中的ip为定义的路径server:8020
直接将路径改为127.0.0.1:8020
熟悉常用的hdfs操作实验报告,大数据实验,大数据,hdfs,hadoop

运行成功文章来源地址https://www.toymoban.com/news/detail-848533.html

到了这里,关于大数据实验 实验二:熟悉HDFS常用操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 大数据 | 实验一:大数据系统基本实验 | 熟悉常用的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 部署环境和步骤 掌握 HDFS( 集群的启动 start-dfs.sh) 启动 使用 Hadoop 命令 ( 文件的增 / 删 / 改 / 查 / 上传 / 下载 ) 来操作分布式文件系统 二、实验内容 HDFS 伪分布式环境搭建 HDFS( 集群的启动 start-dfs.sh) 启动 练习 Hadoop 命令 ( 文件

    2024年02月04日
    浏览(33)
  • 大数据技术原理及应用课实验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)
  • 【大数据实验一 】熟悉常用的Linux操作和Hadoop操作

    1.实验目的 Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作和Hadoop操作,为顺利开展后续其他实验奠定基础。 2.实验平台 (1)操作系统:Linux(Ubuntu18.04); (2)Hadoop版本:3.1.3。 3.实验步骤 1.熟悉常用的Linux操作 1)cd命令:

    2024年02月08日
    浏览(39)
  • 熟悉常用的HDFS操作(附录HDFS常用命令)

    1、理解HDFS在Hadoop体系结构中的角色; 2、熟练使用HDFS操作常用的Shell命令; 3、熟悉HDFS操作常用的Java API 1、编程实现指定功能,并利用Hadoop提供的Shell命令完成相同任务: 2、编程实现一个类“MyFSDataInputStream”,该类继承“org.apache.hadoop.fs.FSDataInputStream”。 编程实现以下指定

    2023年04月09日
    浏览(45)
  • 云计算与大数据实验四 HDFS编程

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

    2024年02月08日
    浏览(51)
  • Hadoop 使用Linux操作系统与Java熟悉常用的HDFS操作

    注意看评论区获取完整代码资料 目录 一、实验目的 二、实验平台 三、实验步骤 理解HDFS在Hadoop体系结构中的角色; 熟练使用HDFS操作常用的Shell命令; 熟悉HDFS操作常用的Java API。 操作系统:Linux(建议Ubuntu16.04); Hadoop版本:2.7.1; JDK版本:1.8或以上版本; Java IDE:Eclipse。

    2024年02月03日
    浏览(53)
  • 云计算 熟悉常用的LINUX操作和hadoop部署相关操作 实验报告

    《云计算系统架构及应用》实验报告 题目: 熟悉常用的LINUX操作和hadoop部署相关操作 姓名 日期 实验环境:  操作系统:Linux Hadoop版本:2.7.3 实验内容与完成情况: (一)熟悉常用的Linux 操作 请按要求上机实践如下linux基本命令。 cd命令:切换目录 (1)切换到目录 /usr/lo

    2024年02月05日
    浏览(40)
  • 熟悉MySQL和HDFS操作

    1.使用Python操作MySQL数据库 在Windows系统中安装好MySQL8.0.23和Python3.8.7,然后再完成下面题目中的各项操作。 现有以下三个表格: 表1 学生表:Student(主码为Sno) 学号(Sno) 姓名(Sname) 性别(Ssex) 年龄(Sage) 所在系别(Sdept) 10001 Jack 男 21 CS 10002 Rose 女 20 SE 10003 Michael 男

    2024年02月08日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包