大数据平台/大数据技术与原理-实验报告--实战HDFS

实验名称

实战HDFS

实验性质

(必修、选修)

必修

实验类型(验证、设计、创新、综合)

综合

实验课时

2

实验日期

2023.10.23-2023.10.27

实验仪器设备以及实验软硬件要求

专业实验室(配有centos7.5系统的linux虚拟机三台

实验目的

1. 理解HDFS体系架构。

2. 理解HDFS文件存储原理和数据读写过程。

3. 熟练掌握HDFS Web UI界面的使用。

4. 熟练掌握HDFS Shell常用命令的使用。

5. 熟练掌握HDFS项目开发环境的搭建。

6. 掌握使用HDFS Java API编写HDFS文件操作程序。

实验内容(实验原理、运用的理论知识、算法、程序、步骤和方法)

1.启动全分布模式Hadoop集群,守护进程包括NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager和JobHistoryServer。

此时使用jps查看各个节点端口的启用情况:

主节点:

从节点:

2.查看HDFS Web界面。

3.练习HDFS Shell文件系统命令和系统管理命令。

查看文件目录:

hdfs dfs -ls <路径>

上传文件:

hdfs dfs -put <localsrc> <dst>

这个命令可以将本地文件上传到HDFS1。

下载文件:

hdfs dfs -get <src> <localdst>

这个命令可以将HDFS的文件下载到本地1。

创建目录:

hdfs dfs -mkdir <路径>

这个命令可以在HDFS中创建新的目录1。

删除文件:

hdfs dfs -rm <路径>

这个命令可以删除HDFS中的文件1。

查看安全模式状态:

hdfs dfsadmin -safemode get

这个命令可以查看HDFS的安全模式状态

以上就是一些基本的HDFS Shell命令,你可以通过这些命令来操作HDFS文件系统。

4.在Hadoop集群主节点上搭建HDFS开发环境Eclipse。

5.使用HDFS Java API编写HDFS文件操作程序,实现上传本地文件到HDFS的功能,采用本地执行和集群执行的两种执行方式测试,观察结果。

6.使用HDFS Java API编写HDFS文件操作程序,实现查看上传文件在HDFS集群中位置的功能,采用本地执行和集群执行的两种执行方式测试,观察结果。

   单击Eclipse工具栏中的Run按钮,直接运行UploadFile,执行结果如图2-32所示。从图2-32中可以看出,在/root/eclipse-workspace/HDFSExample目录下增加一个“file1.txt”文件,本地文件系统发生的变化如图2-33所示,file1.txt没有上传到HDFS上,使用命令“hadoop fs -ls /”查看不到file1.txt。

   此时进行传送到hadoop的集群上进行处理:

此时登录webUI界面:

此时可以看到的是file1.txt文件已经上传上去了

7. 关闭全分布模式Hadoop集群。

    关闭全分布模式Hadoop集群的命令与启动命令次序相反,只需在主节点master上依次执行以下3条命令即可关闭Hadoop。

   mr-jobhistory-daemon.sh stop historyserver

   stop-yarn.sh

   stop-dfs.sh

   执行mr-jobhistory-daemon.sh stop historyserver时,其*historyserver.pid文件消失;执行stop-yarn.sh时,*resourcemanager.pid和*nodemanager.pid文件依次消失;stop-dfs.sh,*namenode.pid、*datanode.pid、*secondarynamenode.pid文件依次消失。

实验结果与分析

       通过本次实验,我们深入理解了HDFS的体系架构、文件存储原理以及数据读写过程。通过练习HDFS Shell命令,掌握了基本的文件系统和系统管理操作。同时,在搭建HDFS开发环境和使用Java API编写HDFS文件操作程序的过程中,提高了对HDFS项目开发的实际应用能力。实验结果表明,在正确配置和操作的情况下,Hadoop集群可以有效地管理大规模数据,并提供可靠的分布式存储和处理服务。

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

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

相关文章

15. 三树之和(双指针)

这道题的思路是排序双指针。 对于排好序的数组&#xff0c;存在以下几种情况&#xff1a; 当元素i为正数时&#xff0c;其之后的数字不在存在三数之和等于0的情况了。当元素i为负数或0时&#xff0c;为了避免重复&#xff0c;依次从头遍历数组&#xff0c;检查当前元素i之后的…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑碳排放分摊的综合能源服务商交易策略》

这篇文章的标题表明它将讨论一个关于综合能源服务商交易策略的主题&#xff0c;而在这个策略中&#xff0c;特别考虑了碳排放分摊的因素。以下是对标题中各关键词的解读&#xff1a; 综合能源服务商&#xff1a; 这指的是在能源领域提供多种服务的企业或组织&#xff0c;可能涵…

蓝桥杯day01——负二进制数相加

题目描述 给出基数为 -2 的两个数 arr1 和 arr2&#xff0c;返回两数相加的结果。 数字以 数组形式 给出&#xff1a;数组由若干 0 和 1 组成&#xff0c;按最高有效位到最低有效位的顺序排列。例如&#xff0c;arr [1,1,0,1] 表示数字 (-2)^3 (-2)^2 (-2)^0 -3。数组形式…

「江鸟中原」有关HarmonyOS-ArkTS的Http通信请求

一、Http简介 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于在Web应用程序之间进行通信的协议&#xff0c;通过运输层的TCP协议建立连接、传输数据。Http通信数据以报文的形式进行传输。Http的一次事务包括一个请求和一个响应。 Http通信是基于客户端-服…

C++之哈希

unordered系列容器的效率之所以比较高(尤其是查找),是因为它底层使用了哈希结构,即哈希表. 哈希概念 前言: 顺序结构以及平衡树中, 元素关键码与其存储位置之间没有对应的关系, 因此在查找一个元素 时, 必须要经过关键码的多次比较. 顺序查找时间复杂度为O(N), 平衡树中为树的…

ESP32-Web-Server编程- JS 基础 4

ESP32-Web-Server编程- JS 基础 4 概述 HTML 内联事件处理器&#xff0c;你永远不应该使用 HTML 事件处理器属性——因为那些已经过时了&#xff0c;使用它们是不好的做法。 在前端编程中&#xff0c;除了将期望发生的事件写为 JS 文件外&#xff0c;还可以使用一些组件自带…

java编程:⼀个⽂件中存储了本站点下各路径被访问的次数,请编程找出被访问次数最多的10个路径

题目 编程题&#xff1a;⼀个⽂件&#xff08;url_path_statistics.txt&#xff09;中存储了本站点下各路径被访问的次数 请编程找出被访问次数最多的10个路径时间复杂是多少&#xff0c;是否可以优化&#xff08;假设路径数量为n&#xff09;如果路径访问次数⽂件很⼤&#x…

Unity中Shader的BRDF解析(二)

文章目录 前言一、回顾一下上一篇的结尾在这里插入图片描述 二、我们来解析一下 UNITY_PBS_USE_BRDF1&#xff08;高配&#xff09;1、迪士尼BRDF原则2、迪士尼的漫反射函数3、参数&#xff1a;perceptualRoughness&#xff08;感性的粗糙度&#xff09;4、参数&#xff1a;hal…

Docker-简介、基本操作

目录 Docker理解 1、Docker本质 2、Docker与虚拟机的区别 3、Docker和JVM虚拟化的区别 4、容器、镜像的理解 5、Docker架构 Docker客户端 Docker服务器 Docker镜像 Docker容器 镜像仓库 Docker基本操作 1、Docker镜像仓库 镜像仓库分类 镜像仓库命令 docker lo…

NET MVC中使用Element-Plus框架编写组件

一、目的 在NET MVC中使用Element-Plus编写可重复使用的组件。 二、准备工作 2.1 NET MVC项目 2.2 MVC项目中使用Element-Plus框架。不熟悉的可以参考此文章&#xff1a; NET MVC中如何使用Element-Plus-CSDN博客 三、组件编写 3.1、新建一个MVC的部分视图页面&#xff…

完整版本会声会影2024新功能介绍

会声会影视频编辑软件&#xff0c;是视频制作初学者的法宝。其友好的操作界面&#xff0c;让视频制作小白也能轻松上手&#xff0c;丰富的媒体库资源&#xff0c;只需一拖一放就能快速导入编辑轨道。多轨道式的编辑功能&#xff0c;让各种素材的搭配使用更加得心应手。 会声会影…

管网/黑臭水/污水水质监测系统

随着城市化进程的加快&#xff0c;城市水务管理面临着越来越多的挑战。其中&#xff0c;管网、黑臭水、污水等水质监测问题尤为突出。为了解决这些问题&#xff0c;越来越多的城市开始应用先进的水质监测系统。 一、系统概述 管网/黑臭水/污水水质监测系统是一款集成了在线监测…

【Python炫技】如何突破网站识别爬取功能?

文章目录 概要技术细节小结 概要 现在有很多网站&#xff0c;已经能够通过JA3或者其他指纹信息&#xff0c;来识别你的请求是不是Requests发起的。这种情况下&#xff0c;你无论怎么改Headers还是代理&#xff0c;都没有任何意义。 我之前写过一篇文章&#xff1a;Python如何…

三元表达式原理及例子js

三元表达式在JavaScript中也是一种简单的条件语句&#xff0c;其语法格式如下&#xff1a; variable condition ? value_if_true : value_if_false;其中&#xff0c;condition是一个布尔表达式&#xff0c;如果它的值为True&#xff0c;那么value_if_true的值将被赋给variab…

npm-工具包

npm-工具包 npm 介绍 npm&#xff08;Node Package Manager&#xff09;是用于管理和共享Node.js包&#xff08;包括代码、工具和资源&#xff09;的包管理工具 常用命令 局部安装包 npm install <package-name>: 安装指定的包 npm install <package-name> --save…

Java的threadd常用方法

常用API 给当前线程命名 主线程 package com.itheima.d2;public class ThreadTest1 {public static void main(String[] args) {Thread t1 new MyThread("子线程1");//t1.setName("子线程1");t1.start();System.out.println(t1.getName());//获得子线程…

1670. 设计前中后队列

使用两个双端队列实现&#xff0c;分别维护前半部分和后半部分中间元素可放在任意一个deque中维护&#xff0c;这里使用前一个deque提供两个调整成员函数&#xff0c;作用分别为使每个deque总为其代表的前(后)半部分&#xff0c;即总是使其deque为总的一半 class FrontMiddleB…

centos8 redis 6.2.6源码安装+主从哨兵

文章目录 centos8 redis 6.2.6源码安装主从哨兵下载解压编译安装配置配置systemd服务启停及开机启动登录验证主从同步配置哨兵哨兵注册systemd centos8 redis 6.2.6源码安装主从哨兵 单机安装 下载解压 cd /data wget http://download.redis.io/releases/redis-6.2.6.tar.gz…

【前端开发】Remix与Next.js

很容易&#xff0c;我们被问到的最大问题是&#xff1a; Remix与Next.js有何不同&#xff1f; 看来我们必须回答这个问题&#xff01;我们想直接而不带戏剧性地解决这个问题。如果你是Remix的粉丝&#xff0c;并且想开始在推特上对这篇文章做出沾沾自喜的反应&#xff0c;我们恳…

【lua】获取某月最大天数

方案一&#xff1a;先获取下个月1号时间戳&#xff0c;减去一天秒数&#xff0c;再获取day -- 获取当前日期的年份和月份 local year os.date("%Y") local month os.date("%m") 1 if month > 12 thenmonth 1year year 1 end local timestamp o…