分享
基于Hadoop的云盘存储系统设计与实现_徐翔.pdf
下载文档

ID:2249465

大小:1.71MB

页数:4页

格式:PDF

时间:2023-05-04

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于 Hadoop 盘存 系统 设计 实现 徐翔
本栏目责任编辑:代影网络通信与安全Computer Knowledge and Technology电脑知识与技术第19卷第3期(2023年1月)第19卷第3期(2023年1月)基于Hadoop的云盘存储系统设计与实现徐翔,张光亚(广东海洋大学教育信息中心,广东 湛江 524088)摘要:云存储目前已被广泛地应用于多个领域。通过数据的远程存储与备份,用户可远程随处办公。Hadoop作为分布式文件系统具有高扩展性、高吞吐量和存储海量数据等特性。文章提出了一种基于Hadoop存储平台的云盘系统的设计思路,研究利用HDFS作为云盘存储平台的可行性,搭建了以SpringBoot框架为基础的后台服务器并对接Hadoop集群系统,解决云盘系统在存储性能上、存储安全性上所遇到的问题,为同类系统的开发提供了重要参考。关键词:Hadoop;HDFS;云盘;分布式存储中图分类号:TP317文献标识码:A文章编号:1009-3044(2023)03-0078-04开放科学(资源服务)标识码(OSID):1 引言随着目前互联网产业的飞速发展,以及通讯设备应用的普及,计算机在人们日常生活中发挥着越来越重要的作用,信息的处理、传输和采集已然成为现代信息技术的三大基石1。在未来,随着大数据、物联网、人工智能、5G等技术的不断突破与发展,全球的数据量将越来越大,信息的存储和管理变得复杂,单机硬盘存储已满足不了用户的文件存储和管理需要。为了适应目前信息化社会对于支持网络和多种数据信息的应用软件的要求,以网络存储为核心的个人云盘存储系统应运而生。云盘存储相对于传统的实体磁盘来说更方便快捷,用户不需要把储存重要资料的实体磁盘带在身上,而可以通过互联网轻松地从云端读取自己所存储的信息,解决了单机硬盘存储量少、管理效率低、网络传输能力差等有关于文件存储的问题。在云存储服务面向用户使用之前,用户数据的存储存在一定的局限性,例如当用户需要向个人存储系统中存储海量数据文件时,因系统本身没有实现大数据文件优化存储处理的方案,原本的系统存储性能将会很大程度地降低。此时即使对存储服务器进行扩展升级,存储性能也不会有明显的提升。因此,相对于传统的存储服务,云存储无论是对于需要更大存储空间的个人,还是对于寻求高效异地数据备份解决方案的企业都越来越受欢迎。云存储提供了一种以安全可靠的方式存储和迁移数据的方式,它允许个人和企业将他们的文件存储在云服务提供商处,以便他们能够在网络设备上对个人文件进行访问。基于Hadoop2-4的HDFS是谷歌文件系统的开源实现项目,项目成立之后便逐渐成为各个企业或机构的云存储系统解决方案,同时也是当前在云存储领域最重要的研究对象。HDFS5在Hadoop集群中担任着集群数据存储重要角色,具有高稳定性与可扩展性等优点,并且能够运行在廉价机器上,一定程度上降低了云存储系统设计的成本。国内互联网巨头百度和阿里巴巴分别在2006年和2012年就对Hadoop进行关注并研发使用,解决了大数据云存储的相关问题,为用户提供了底层的模型计算以及存储服务。基于Hadoop的HDFS分布式文件系统是当前云存储领域的研究热点6-8。本课题研究并设计以Hadoop为基础的大数据云盘存储系统具有重要意义。2 云盘系统总体架构本系统的总体架构分为三部分:客户端、业务逻辑层及大数据存储集群,具体如图 1所示。用户从客户端中向后台服务器发起用户注册与收稿日期:2022-07-28基金项目:广东海洋大学“创新强校”工程重大科研与培育项目(No:q18305)作者简介:徐翔(1974),男,硕士,高级实验师,广东海洋大学教育信息中心网络管理部主任,研究方向为计算机网络通信及信息安全;张光亚(1970),男,硕士,副研究员,广东海洋大学教育信息中心主任,研究方向为教育信息化建设。E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.19,No.3,January2023图 1 云盘系统总体架构78DOI:10.14004/ki.ckt.2023.0135网络通信与安全本栏目责任编辑:代影Computer Knowledge and Technology电脑知识与技术第19卷第3期(2023年1月)第19卷第3期(2023年1月)登录请求,验证通过后可以在个人云盘空间内管理自己的目录与文件,可以对目录或文件进行新增、删除、重命名等操作。用户向后台服务器发起的所有请求都需经过安全性的处理,以防网络攻击者窃取用户的个人隐私信息。业务处理层则用于处理用户发起的具体请求,若业务处理的过程中存在逻辑错误,则会向用户弹出错误提示框,让用户规范自己的相关操作。对于用户上传的文件数据,后台服务器负责将其转化为流数据,并经过加密处理后存入大数据存储集群中。用户的文件存储数据的相关记录将存储至MySQL数据库内。在大数据存储集群中,由于HDFS集群具有副本机制,每个Hadoop节点都会分别存储一个文件的副本,即一个文件有3个副本,这些副本可以根据特定的算法分配到三个Hadoop节点中,一定程度上避免了数据丢失的情况。故大数据存储集群必须使用三个或三个以上的服务器,从而实现Hadoop全分布式的集群环境。3 云盘系统实现3.1 前端Web页面设计云盘系统的前端界面采用基于Bootstrap的UI框架,实现用户登录注册界面及云盘系统模板界面。Bootstrap是一个开源的、基于HTML5及CSS3和JS的响应式布局框架,因此它可以很好地兼容电脑端页面与手机Web端页面的布局。在本系统中,考虑同时设计电脑端页面及手机端页面,方便用户在多种形式的设备上使用本系统。用户在前端对云盘进行的一系列操作将使用经过定制后的Ajax技术,用于异步请求后台资源,并返回固定格式的用户提示框。为了方便用户能够在线读取特定格式的文件内容(如文本、图片等),还引入了基于Bootstrap的文件读取框架。对于数据分析模块,为满足数据可视化需求,引入了较为热门的Echarts.js组件,用以生成数据图表信息。3.2 后台Web服务器设计云盘系统采用SpringBoot作为后台Web服务器基础框架,并使用MVC模式将后台服务器分为接口层(Controller)、业务逻辑层(Service)和数据链路层(Mapper)三层架构,完成整个系统的数据传输和交互。MyBatis是一个持久层框架,用于建立数据库的访问链接,在此过程中开发者只需关注SQL语句的书写逻辑,方便快捷,且能与SpringBoot完美集成。系统中还采用了Shiro用户登录安全验证框架,它能够轻松地与JavaSE和JavaEE进行集成,用于用户登录时的认证、授权、加密、会话管理等功能。3.3 数据库设计数据库概念设计如图 2所示,包含用户、目录和文件实体。每个用户可以创建多个目录及上传多个文件,但是一个目录或文件只能够属于一个用户,因此用户与目录、文件之间都是属于一对多关系。为了统计用户的相关操作信息以及操作云盘时所产生的流量数据,还需设计日志表实体与流量表实体,实体关系如图 3所示。日志实体主要的字段为所属用户ID和响应参数,用于统计用户的相关操作参数,同时也包括用户上传与下载的流量使用参数,日志表为流量统计提供了相关的数据源。流量表实体则是用于记录数据分析后的流量信息,主要字段有所属用户ID、当日上传总流量以及当日下载总流量等。图 3 用户、目录和文件实体关系图3.4 基于MapFile的小文件存储HDFS设计之初就是为了存储大容量文件,并没有对小文件的存储进行相关的优化。在Hadoop2.0版本之后,HDFS中的每个文件存储数据块以128MB为单位,而用户个人数据文件(以文档、图片等为主)的容量大小远远小于128MB的数据块阈值,这些小文件额外占用了HDFS中更多的容量空间,造成存储空间的浪费。当用户数量增大时,HDFS便迎来了大量小文件存储所造成的存储效率问题。为了解决HDFS不适合存储小文件的问题,提出了使用基于MapFile的方案来优化小文件的存储,提高存储效率。MapFile基本上由两大部分组成,分别是用于存储数据的Data块,以及存储索引文件的Index块。在使用MapFile方案存储小文件时,文件数据将会被分为一个键值对,该键值对中的“键”指的是序列化后的文件名,“值”则是指文件本身的内容。多个文件数据的键值对数据会被合并为一个大文件存储在Data块中,与此同时建立每个文件数据的映射关系,在Index索引块中记录每个文件数据的键值对信息。这样一来,在通过MapFile访问小文件时,可以通过Index索引块快速定位到相关的文件内存位置,提高小文件检索效率。4 系统测试4.1 测试环境搭建4.1.1 Hadoop集群搭建为了对系统进行测试,搭建了具有三台服务的Hadoop集群。服务器采用Linux系统,基本配置相同。为图 2 日志、流量表E-R图79本栏目责任编辑:代影网络通信与安全Computer Knowledge and Technology电脑知识与技术第19卷第3期(2023年1月)第19卷第3期(2023年1月)了快速搭建Hadoop集群,首先创建一个模板服务器,然后通过拷贝的方式复制另外两个相同配置的服务器。模板服务器名称为Hadoop102,默认安装有JavaJDK8与Hadoop3.1.3两个必要组件。另外两台服务器名称分别为Hadoop103和Hadoop104。将Hadoop102中的JDK与Hadoop组件复制给这两个新服务器。为了实现跨服务器传输文件,采用shell语言的rsync命令,其具体作用是把服务器指定目录的所有文件拷贝到另一个服务器。最后,把Hadoop的重要运行节点分配到三台服务器中。在Hadoop全分布式环境中,为了保证集群正常运行,需要启动五个基础节点:NameNode(管理节点)、DataNode(工作节点)、SecondaryNameNode(NameNode副本节点)、ResourceManager(资源管理节点)以及Nodemanager(监控资源节点)。其中,每个服务器都必须拥有一个 DataNode 与一个Nodemanager节点,以保证每个服务器能够正常运行相关程序。因此,对于另外三个重要节点NameNode、SecondaryNameNode以及ResourceManager,需要分别分配到三个服务器中。服务器的节点分配情况如表1所示。表1 Hadoop集群节点分配组件服务器HDFSYARNHadoop102NameNodeDataNodeNodeManagerHadoop103DataNodeResourceManagerNodeManagerHadoop104SecondaryNameNodeDataNodeNodeManager为了分配服务器节点,需要在各服务器的core-site.xml文件中配置NameNode节点的主机地址,并指定 NameNode 启动在 Hadoop102 服务器的 8020 端口上。NameNode节点关键属性配置如下所示:在每台服务器的 hdfs-site.xml 文件中配置 SecondaryNameNode节点的主机地址,并指定SecondaryNameNode节点启动在Hadoop104服务器的9868端口上。关键属性配置如下所示:在每台服务器的 yarn-site.xml 文件中配置 ResourceManager节点的主机地址,并指定ResourceManager节点启动在Hadoop103服务器上。关键属性如下所示:经过以上合理配置的Hadoop集群即使有一台服务器发生了故障,其他两台服务器仍然保留着重要的数据信息,最大程度上避免数据丢失。4.1.2 后台Web服务器搭建后台服务器将以SpringBoot作为基础框架,以Maven作为项目管理工具。当一个基于Maven的项目创建完成后,需要使用Maven仓库将

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开