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

news/2025/2/21 9:25:28/

实验名称

实战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.ppmy.cn/news/1246780.html

相关文章

机器人算法——costmap膨胀层InflationLaye

如下图是更新地图膨胀 void InflationLayer::updateCosts(costmap_2d::Costmap2D& master_grid, int min_i, int min_j, int max_i, int max_j) {//用指针master_array指向主地图&#xff0c;并获取主地图的尺寸&#xff0c;确认seen_数组被正确设置。boost::unique_lock …

【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件

思路 JS-DLL-WINCC-PLC之间进行交互&#xff0c;思路&#xff0c;先用Visual Studio创建一个C#的DLL控件&#xff0c;然后这个控件里面嵌入浏览器组件&#xff0c;实现JS与DLL通信&#xff0c;然后DLL放入到WINCC里面的图形编辑器中&#xff0c;实现DLL与WINCC的通信。然后PLC与…

Vue 双向数据绑定

之前通过v-bind来完成的数据绑定&#xff0c;属性值和表达式进行绑定&#xff0c;表达式的值发生变化了属性值也跟着发生变化。 单向数据绑定&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>首页</titl…

高质量短效SOCKS5代理IP是什么意思?作为技术你了解吗

小张是一位网络安全技术测试员&#xff0c;最近他接到了一个头疼的任务&#xff0c;那就是评估公司系统的安全性&#xff0c;因此他前来咨询&#xff0c;在得知SOCKS5代理IP可以帮他之后&#xff0c;他不禁产生疑问&#xff0c;这是什么原理&#xff1f;其实和小张一样的朋友不…

高翔:《自动驾驶与机器人中的SLAM技术 》-Slam_in_autonomous_driving 编译过程中遇到的问题

使用的环境是ubuntu20.04 问题1.安装g2o没有问题&#xff0c;不过在编译整个项目工程时候报错&#xff1a; ”openmp_mutex.h: 30:10: fatal error: g2o/config.h: No such file or directory“: 解决办法&#xff1a; 只需要将/thirdparty/g2o/build/g2o下的config.h放到/…

力扣labuladong——一刷day57

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣1379. 找出克隆二叉树中的相同节点二、力扣LCR 143. 子结构判断三、力扣110. 平衡二叉树四、力扣250. 统计同值子树 前言 有些题目&#xff0c;你按照拍…

优雅编写测试代码:在pytest中利用Fixture实现自动化测试!

什么是固件 Fixture 翻译成中文即是固件的意思。它其实就是一些函数&#xff0c;会在执行测试方法/测试函数之前&#xff08;或之后&#xff09;加载运行它们&#xff0c;常见的如接口用例在请求接口前数据库的初始连接&#xff0c;和请求之后关闭数据库的操作。 我们之前已经…

摄影网站的技术 SEO:提示和最佳实践

摄影就是要给人留下良好的第一印象。如果你想在竞争中领先&#xff0c;摄影师的SEO是您可以采用的最佳营销方法之一。 我们都曾有过这样的经历&#xff1a;你建立了一个漂亮的作品集网站来吸引更多的业务。网站上线并在社交媒体上推广后&#xff0c;您就可以坐等了。网站访问量…