河南大学大数据平台技术实验报告二
大数据平台技术课程实验报告
实验二:HDFS操作实践
姓名:杨馥瑞
学号:2212080042
专业:数据科学与大数据技术
年级:2022级
主讲教师:林英豪
实验时间:2024年3月15日3点 至 2024年3月15日4点40
实验内容与要求:
1 HDFS基本知识总结
2 HDFS接口的操作实践
2.1 HDFS Shell 实践
2.2 HDFS Web客户端
2.3 HDFS Java API 实践
特别提醒:
(1)基本知识点的总结请使用自己的语言,根据自己的理解去总结,就像写课程笔记一样,不要去网上抄写
(2)实践需要有截图以及相应的文字介绍,欢迎大家把自己在实践过程中碰到的问题以及解决方法也记录下来
- HDFS基本知识的总结
HDFS是一个分布式文件系统,是Hadoop的核心组件之一。HDFS的设计目标是处理大数据集,能够提供高可靠性、高可扩展性和高效性的数据存储服务。下面是HDFS的一些基本知识点总结:
块:HDFS将文件划分为多个块,每个块默认大小为128MB,块的大小可以自定义设置。块的大小是为了提高数据读取的效率,减少寻址时间。
副本:HDFS会自动将文件块的副本分布到不同的数据节点上,以提高数据的可靠性和容错性。每个块的默认副本数为3,可以通过配置文件进行修改。副本分布的策略是将副本分配到不同的机架上,从而避免机架之间的单点故障。
Namenode:Namenode是HDFS的主节点,负责管理整个文件系统的命名空间、块的元数据信息和访问控制等。Namenode保存着每个文件的块列表和块所在的数据节点信息,以及每个块的副本分布情况。
Datanode:Datanode是HDFS的工作节点,负责存储文件块的实际数据。Datanode会向Namenode发送心跳信号和块状态报告,以告知Namenode自己的存储情况。如果某个块的所有副本都失效了,Namenode会通知Datanode进行块的复制。
客户端:客户端是HDFS文件系统的用户,可以使用HDFS的API进行文件的读写和管理操作。客户端首先要向Namenode发起请求,获取文件的元数据信息,然后根据元数据信息访问数据节点进行文件的读写。
数据流:HDFS将文件块的传输分成若干个数据包,每个数据包通过TCP协议进行传输。数据包的大小默认为64KB,可以通过配置文件进行修改。在数据传输过程中,每个数据包会被多个Datanode进行转发和接收,从而实现数据的并行传输。
故障恢复:HDFS采用了多种机制来保证数据的可靠性和容错性。例如,当某个块的副本失效时,Namenode会通知Datanode进行块的复制;当Namenode出现故障时,可以通过备份Namenode进行自动故障转移;当Datanode出现故障时,数据块会被复制到其他Datanode上,保证数据的可靠性。
2. HDFS的操作实践
2.1 HDFS Shell 实践
启动服务
列举一个目录的路径
上传
下载
查看文件内容
删除
2.2 HDFS Web客户端
Hadoop也提供了 Web 方式来查看 HDFS 的情况。在浏览器的地址栏中输人链接 http://[NameNodeIP]:50070,便会弹出下图所示的页面。该页面显示了当前集群中 HDFS 使用的大小、活跃的节点、数据块的个数等信息。Overview 中的“localhost: 9000”显示的是HDFS的路径。该路径在后面通过Java API来访问 HDFS 时会用到。如果是单机伪分布式安装,那么NameNodeIP就是localhost。
下图所示的内容即为在伪分布式安装环境下输人 http://localhost;50070所显示的结果。通过输入该链接来查看 HDFS 的情况也常用来检验 Hadoop 集群是否安装和启动成功。
2.3HDFS Java API 实践
在实际的 Hadoop 应用过程中,最常用的是通过 Java API 的方式来访问和操作HDFS。Hadoop 主要是通过 Java 语言编写的,因此上述访问 HDFS 的FS Shell 本质上也是通过JavAPI来实现的。
下面给出基于 Java API访问 HDFS 的示例代码,以说明如何通过 Java API来实现建立目录、上传及下载文件、删除文件等主要操作。该示例代码主要通过 Maven 来实现,使用和依赖的jar 包显示在 Maven 的 pom.xml文件的 dependencies 项中。完整的 pom.xml文件显示如下:
在 pom.xml文件中配置好 jar 包依赖信息之后,还需要在 Hadoop 安装文件“/etc/hadoop”路径下的 hdfs-site.xml 文件添加配置信息,然后重启 HDFS。相关操作如下图所示:
根据课本提示,在Maven项目中建立一个名为HDFSSapp的Java类,尝试通过Java API来实现针对HDFS的目录创建、文件创建、上传及下载文件、删除文件等操作。课本示例代码已输入,部分代码如下所示:
- 问题及解决方案
出现import时部分包错误
解决方案:缺少相关文件,重新下载即可。如下图所示:
如果在下载时打断则要:彻底删除本地仓库下的全部文件,重启IEDA并reimport进行自动下载
相关文章:

河南大学大数据平台技术实验报告二
大数据平台技术课程实验报告 实验二:HDFS操作实践 姓名:杨馥瑞 学号:2212080042 专业:数据科学与大数据技术 年级:2022级 主讲教师:林英豪 实验时间:2024年3月15日3点 至 2024年3月15日4点40 …...

Spring Cloud Gateway如何实现熔断
Spring Cloud Gateway熔断集成 熔断应用: 金融市场中的熔断机制:在金融交易系统中,熔断机制(Circuit Breaker)是一种市场保护措施,旨在预防市场剧烈波动时可能导致的系统性风险。当某个基准指数(…...
2403d,d的com哪里错了
原文 感谢任意见解.细节: >dmd --version DMD64 D Compiler v2.107.0参考: ComObject类 IUnknown接口 我只使用了ComObject类和隐式继承了IUnknown接口,用用ImportC编译并包含以下内容的comheaders.c编写了一些COM测试代码. #define WINVER 0x0A00 #define _WIN32_WINNT…...
LeetCode151:反转字符串中的单词
题目描述 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空…...

Linux入门-常见指令及权限理解
目录 1、Linux背景 1.1、发展历史 1.2、开源 1.3Linux企业应用现状 2、Linux下的基本命令 2.1、ls 指令 2.2、pwd 命令 2.3、cd 命令 2.4、touch命令 2.5、mkdir 命令 2.6、rmdir 指令和 rm指令 2.7 man 指令 2.8、cp指令 2.9、mv 指令 2.10 cat 2.11 more 2…...
找工作的经验总结一——渠道与简历
关于简历与面试的经验总结,也可以说是关于找工作的方法论。 这里我们用第一性原理的方法论来分析找工作这件事。 首先,我们的目的是什么? 当然是找工作,不论你是大学刚毕业,还是创业失败,或者是在家闲着…...

第 126 场 LeetCode 双周赛题解
A 求出加密整数的和 模拟 class Solution { public:int sumOfEncryptedInt(vector<int> &nums) {int res 0;for (auto x: nums) {string s to_string(x);char ch *max_element(s.begin(), s.end());for (auto &c: s)c ch;res stoi(s);}return res;} };B 执行…...

固态浸压计
Solid State Dip Meter(固态浸没仪/固态浸压计) 是真空管栅极浸入式仪表的固态半导体版本。它是一种用于测量 LC 电路谐振频率的仪器。LC 电路是由电感 (L) 和电容 (C) 组成的电路。当电感的感抗与电容的容抗相互抵消时,这些元件可以谐振于特定频率。 固态浸入式仪…...

Ubuntu上搭建TFTP服务
Ubuntu上搭建TFTP服务 TFTP服务简介搭建TFTP服务安装TFTP服务修改配置文件 重启服务 TFTP服务简介 TFTP是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适用于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计,只…...

SpringBoot3框架,事件和监听器、SPI
事件和监听器 生命周期监听 自定义监听器的步骤: 编写SpringApplicationRunListener实现类(各个实现方法的功能写在其sout内) public class MyAppListener implements SpringApplicationRunListener {Overridepublic void starting(Configu…...

sadtalker-api/
———— 下载sadtalker工程文件,包括844个模型 。。。。。。。。。。。。。。。。 配置环境: pip源,设置: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple anaconda prompt, 进入命令行 how在 …...
vue+elementUI实现指定列的单元格可编辑
template中的代码如下: <div v-if"(item.label 高压侧 || item.label 低压侧)&&coloumnHeader.label 单柱片数"><div class"editableCell"><div v-if"item.label 高压侧" dblclick"changeValue(sco…...

RK3568平台开发系列讲解(基础篇)内核是如何发送事件到用户空间
🚀返回专栏总目录 文章目录 一、相关接口函数二、udevadm 命令三、实验沉淀、分享、成长,让自己和他人都能有所收获!😄 一、相关接口函数 kobject_uevent 是 Linux 内核中的一个函数, 用于生成和发送 uevent 事件。 它是 udev 和其他设备管理工具与内核通信的一种方式。…...

力扣---打家劫舍---动态规划
思路 1: 我将res[i]定义为:一定要取第 i 个房子的前提下,能获取的最大金额。那么直接用cnt从头记录到尾,每个房子的res最大值即是答案。那么递推公式是什么?res[i]max(res[i-2],res[i-1],...,res[0])nums[i]。数组初始…...
mac安装rust环境
mac安装rust环境 老规矩官方文档 1. mac官网使用的是脚本安装, 至于为啥没使用brew也没推荐俺也不太清楚 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh2. 一般来说中途会遇见有一个选择我这里选择直接回车默认安装(如果以后我研究明白的话会进行更新, 现在是…...

1058:求一元二次方程
【题目描述】 利用公式 求一元二次方程axbxc0的根,其中a不等于0。结果要求精确到小数点后5位。 【输入】 输入一行,包含三个浮点数a,b,c(它们之间以一个空格分开),分别表示方程axbxc0的系数。 【输出】 输出一行&…...
GraphQL入门之一对多关联查询
创建 Node.js 的工程 mkdir myapp cd myapp npm init (一路回车)安装依赖包 npm install apollo/server graphql定义 Schema 创建 schema.graphql 文件,内容如下: type Book {title: String!author: Author! }type Author {name: String!books: [Boo…...
MATLAB和Python数值和符号计算可视化物理学气体动能和粒子速度
要点 Python物理学差分数值和符号计算 热动力学计算:统计力学,分子动力学模型 Python寻找弹性物体的运动,LAMMPS 分子动力学模拟器模拟2D气体分子,Python原子模拟绘图,Python数值计算原子平衡性,Python绘制…...

阿里云-零基础入门NLP【基于机器学习的文本分类】
文章目录 学习过程赛题理解学习目标赛题数据数据标签评测指标解题思路TF-IDF介绍TF-IDF 机器学习分类器TF-IDF LinearSVCTF-IDF LGBMClassifier 学习过程 20年当时自身功底是比较零基础(会写些基础的Python[三个科学计算包]数据分析),一开始看这块其实挺懵的&am…...

蓝桥杯模块综合——高质量讲解AT24C02,BS18B20,BS1302,AD/DA(PCF8591),超声波模块
AT24C02——就是一个存储的东西,可以给他写东西,掉电不丢失。 void EEPROM_Write(unsigned char * EEPROM_String,unsigned char addr , unsigned char num) {IIC_Start();IIC_SendByte(0xA0);IIC_WaitAck();IIC_SendByte(addr);IIC_WaitAck();while(nu…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...