河南大学大数据平台技术实验报告二

2024-03-16 16:12

本文主要是介绍河南大学大数据平台技术实验报告二,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大数据平台技术课程实验报告

实验二: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)实践需要有截图以及相应的文字介绍,欢迎大家把自己在实践过程中碰到的问题以及解决方法也记录下来

  1. 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的目录创建、文件创建、上传及下载文件、删除文件等操作。课本示例代码已输入,部分代码如下所示:

  1. 问题及解决方案

出现import时部分包错误

解决方案:缺少相关文件,重新下载即可。如下图所示:

如果在下载时打断则要:彻底删除本地仓库下的全部文件,重启IEDA并reimport进行自动下载

这篇关于河南大学大数据平台技术实验报告二的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/816007

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock