1、第 1 页(共 29 页)本科毕业论文(20 届)网络存储系统的设计与实现hadoop 接口实现及系统测试所在学院专业班级 信息与计算科学学生姓名指导教师完成日期第 2 页(共 29 页)网络存储系统的设计与实现hadoop 接口实现及系统测试摘 要:随着计算机网络技术的飞速发展,各种网络服务器对存储的需求随之发展。但由于商业规模的不同,对网络存储的需求也不同。因此,要选择适合的网络存储技术进行网络存储。传统的网络存储技术只是解决了数据的存储问题,对于如何确保存储数据的安全可靠性却没有提供有效方案。本文研究了分布式网络存储系统的设计与实现,对其设计思想,体系架构及存储数据文件进行了分析与设计。
2、关键词:网络技术;网络存储;数据;分布式Abstract:With the rapid development of computer network technology, the demand for storage with the development of various network server. But because of the different business scale, the demand for network storage is also different. Therefore, to choose suitable network storage
3、technology for network storage. The traditional network storage technology can solve the problem of data storage, only about how to ensure the safety and reliability of the data is stored but not provide effective solution. This paper studies the design and implementation of a distributed network st
4、orage system, the design thought, system architecture and data storage file has carried on the analysis and design.Keywords: network;storage;data;distribute第 3 页(共 29 页)1 引言1.1 研究背景数据的保存,从古至今都是在跟随着时代发展的。古代,没有硬盘技术,也没有先进的网络技术,于是,我们聪明的祖先就将数据刻在龟甲、兽骨上,再后来,写在竹简上、纸上,以及现代的磁带、磁盘、光盘。从体积大容量小,一直发展到如今的体积小容量大的 U
5、盘、移动硬盘。但这些从古到今的存储介质对于数据的保存不能解决数据的安全长久的问题。所以,我们要在这些脆弱的数据基础上建立有效的、能够长期安全保存数据的方法。在飞速发展的今天,无论是公司还是个人,随着时间的累积,数据都是呈增长趋势的,势必,我们需要一个有效的存储数据的方法,来保证数据的长久存储、安全存储、可靠存储。对于数据的安全存储,个人的解决办法通常是多处保存,磁盘,硬盘,优盘等。但是对于一个小型企业甚至是更大型一点的企业来说,这样的方法几乎是不可行的。一般企业采用集中式存储,利用磁盘镜像来提高有限的数据可靠性,但能提供的容量有限。分布式存储思想的出现,使得解决这些问题变得越来越现实,可实行。
6、基于这些实际情况,分布式存储系统的研究,与我们而言就有了很深的意义。1.2 目的和意义本文的目的就是利用分布式思想建立一个廉价,部署简单,稳定,可靠,易扩展,自由组织的分布式存储系统,使得数据的存储高效、安全、长久。1.3 名词解释1)分布式存储:与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存第 4 页(共 29 页)储在企业的各个角落。2)Hadoop:一个由 Apache 基金会所开发的分布式系统基础架构, 用户可以在不了解分布式底层细节的情况下
7、,开发分布式程序。充分利用集群的威力进行高速运算和存储。3)HDFS:Hadoop Distributed File System 的简称,是一个高度容错性的系统,适合部署在廉价的机器上。HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。4)SSH(安全外壳协议):为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。2 系统开发关键技术分析2.1 分布式存储技术2.1.1 分布式存储概念与目前常
8、见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。2.1.2 具体技术海量的数据按照结构化程度来分,可以大致分为结构化数据,非结构化数据,半结构化数据。1)结构化数据所谓结构化数据是一种用户定义的数据类型,它包含了一系列的属性,每一个属性都有一个数据类型,存储在关系数据库里,可以用二维表结构来表达实现第 5 页(共 29 页)的数据。大多数系统都有大量的结构化数据,一般存储在 Oracle 或 MySQL 的等的关系型数据库中。2)非结构化数
9、据相对于结构化数据而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML 、HTML、各类报表、图像和音频/视频信息等等。3)半结构化数据介于完全结构化数据(如关 系型数据库、面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据, 半结构化数据模型具有一定的结构性,但较之传统的关系和面向对象的模型更为灵活。半结构数据模型完全不基于传统数据库模式的严格概念,这些模型中的数据都 是自描述的。 2.2 HDFSHadoop 分布式文件系统(Hadoop Distributed File System):每个文件就是一个数据集,也
10、就是说数据的存储最终以文件的形式,存储在文件系统中。文件系统是 OS 系统一个重要的部分。文件系统通过设备驱动来访问设备(如磁盘)。各种不同的文件系统其方式也不同,本系统采用的是分布式文件系统。分布式文件系统是用多台主机群集在一起构建一个文件系统,剥离文件元数据和数据来用一个专门的集中式(也有非集中式)服务器维护文件系统的元信息,多台专门存储的服务器,对元数据的操作和数据读取也分开。这是目前分布式文件系统采用的主要模式。本论文阐述的 hdfs(Hadoop 分布式系统 )也不例外,主要采用这个思想来构建系统。3 系统需求分析3.1 系统定义3.1.1 项目要达到的目标第 6 页(共 29 页)
11、本项目设定的目标如下:1)系统能够提供友好的用户界面,使操作人员的工作量最大限度的减少2)系统具有良好的运行效率,有良好的可扩充性,可以容易的加入其它系统的应用。3)平台的设计具有一定的超前性,灵活性,能够适应企业生产配置的变化。4)数据中心要建设一个设备集中、集中管理、满足应用、方便扩展、安全稳定、共享同一的存储系统。5)通过这个项目可以锻炼队伍,提高团队的开发能力和项目管理能力6)用户注册后能够在上面保存删除自己的文件。3.1.2 系统整体结构图 3-1 系统整体结构图3.2 应用环境3.2.1 系统运行网络环境本系统的网络运行图如图 3-2,无论是客户端的网络存储使用者还是管理端的管理者
12、等都可以通过网络登录到本系统中。网络存储将想要进行存储的东西存放在系统中,管理员可第 7 页(共 29 页)进行管理。图 3-2 网络运行图3.2.2 系统运行硬件环境1)硬件环境客户机:普通 PCCPU:P4 1.8GHz内存:256MB 以上分辨率:推荐使用 1024*768 像素2)WEB 服务器CPU:P4 1.8GHz内存:2048MB 以上3)hadoop 从服务器CPU:P4 1.8GHz内存:1024MB 以上3.2.3 系统运行软件环境1)操作系统:Linux第 8 页(共 29 页)2)数据库:mysql3)开发工具包:Myeclipse4)JSP 服务器:Tomcat5)
13、浏览器:IE8.0/Firefox3.3 功能规格我们采用面向对象分析作为主要的系统建模方法,使用 UML(Unified Modeling Language)作为建模语言。 UML 为建模活动提供了从不同角度观察和展示系统的各种特征的方法。在 UML 中,从任何一个角度对系统所作的抽象都可能需要几种模型来描述,而这些来自不同角度的模型图最终组成了系统的映像。Use Case 描述的是“actor”(用户、外部系统以及系统处理)是如何与系统交互来完成工作的。Use Case 模型提供了一个非常重要的方式来界定系统边界以及定义系统功能,同时,该模型将来可以派生出动态对象模型。设计 Use-cas
14、e 时,我们遵循下列步骤:第一步,识别出系统的“actor”。Actor 可以是用户、外部系统,甚至是外部处理,通过某种途径与系统交互。重要的是着重从系统外部执行者的角度来描述系统需要提供哪些功能,并指明这些功能的执行者(Actor)是谁。尽可能地确保所有 Actor 都被完全识别出来。第二步,描述主要的 Use Case。可以采取不断地问自己“这个 Actor 究竟想通过系统做什么?”来准确地描述 Use Case。第三步,重新审视每个 Use Case,为它们下个详尽的定义。3.3.1 角色(Actor)定义1)使用者使用者是指在这个网络存储系统中通过客户端存储资料的人员,这个 Actor
15、 主要参与客户端的注册登陆账号、搜索资料、下载、快速上传等功能。2)管理者管理用户是指管理端的用户,即系统管理员。系统管理员是指对网络存储系统进行相关第 9 页(共 29 页)设置、维护的人员,它也是通过管理端登录对管理端的用户进行设置,分配权限等,它们的关系如图:图 3-3 管理者与使用者关系3.3.2 系统主用例图图 3-4 系统主用例图3.3.3 客户端子系统1)上传文件:用户登陆后可以上传文件,从而存储文件。第 10 页(共 29 页)2)下载文件:用户登陆后可以从系统下载所需文件。3)修改密码:用户登陆后可以对本用户密码进行修改。3.3.4 管理端子系统1)用户管理:管理员登陆后,可
16、以用用户操作,删除用户。2)空间管理:管理员登陆后,可以对用户的空间大小进行管理,更改用户空间大小。3)文件管理:管理员登陆后,可以对用户的文件进行管理,清空用户文件。4)密码管理:管理员登陆后,可以对用户的密码进行重置。3.4 性能需求3.4.1 界面需求系统的界面要求如下:1)页面内容:主题突出,站点定义、术语和行文格式统一、规范、明确,栏目、菜单设置和布局合理,传递的信息准确、及时。内容丰富,文字准确,语句通顺;专用术语规范,行文格式统一规范。2)导航结构:页面具有明确的导航指示,且便于理解,方便用户使用。3)技术环境:页面大小适当,能用各种常用浏览器以不同分辨率浏览;无错误链接和空链接;采用 CSS 处理,控制字体大小和版面布局。4)艺术风格:界面、版面形象清新悦目、布局合理,字号大小适宜、字体选择合理,前后一致,美观大方;动与静搭配恰当,动静效果好;色彩和谐自然,与主题内容相协调。3.4.2 响应时间需求无论是客户端和管理端,当用户登录,进行任何操作的时候,系统应该及时的进行反应,反应的时间在 5 秒以内。系统应能监测出各种非正常情况,如与设备的通信中断,无法连接数据库服务器等,避免出现长时间等待甚至无响应。3.4.3 可靠性需求系统应保证 7X24 内不当机,保证 20 人可以同时在客户端登录,系统正常运