1、摘要 I 摘 要 当今社会是互联网社会,近十年的互联网在中国的发展可以用突飞猛进来形容。如今大数据时代已经到来,云计算也早已闻名于每一个互联网用户中。当今高度信息化的社会,可以说 互联网中的 web 应用是信息交互的主要载体。但其数据量大,数据信息繁杂,且受限于服务器硬件处理能力的限制,很难高速和服务器进行数据交互。 基于此问题,本毕业设计着眼于时下流行的云计算云存储和大数据处理的几种技术方法,在分析现有的分布式存储和计算等关键技术基础上,结合对 HADOOP的集群技术的研究以及自身的业务需求和实际软硬件实力,提出了 一种基于HADOOP 的海量数据存储即文件共享存储模型,并从系统的搭建、程序
2、的设计等几个方面来介绍该系统的开发方法和开发流程。除了数据存储外,我们还将介绍web 下的异步传输模式和 HTTP 技术和 HDFS 原理。 本论文的特点是将研究模型与实际业务应用相结合,以分布式服务器技术作为出发点和技术导向, 添加了娱乐与办公应用功能, 采用基于面向对象编程的 java语言和 Tomcat 作为服务器承载,很好地满足了该软件的项目需求,并将模型部署到实例当中。本文中还将去探讨该模型的高效率、可拓展性等优势。 关 键词 : 分布式 ; java; hadoop; 云存储; javascript Abstract II Abstract Nowadays,our society
3、 is on the highways of Internet.In recent ten years,many of us have witnessed the rapid development of Internet in China.At the same time ,the new conceptions such as mass data and cloud computing have been acknowledging by every internet citizen。 Our society is so high-informative that WEB has been
4、 playing a more important role in information interaction.However, we programmers and those ISOs have to face serveral difficulties below:data of large quantites and complication.and the condition of the server could not meet the requirement of the fast computing . In order to solve these difficulti
5、es,my design willbe focused on the prevailing technologiescloud computing and storing 。 Based on these technologies and subjects ,togther with the study of the HADOOP cluster and the software requirement , I propose a shared storage model for file system,and the paper will instroduce serveral aspect
6、s of the development of this model from the program design and the system construction.Besides the above ,I will also instroduce the asynchronous transfer mode and the principle of HTTP and HDFS. The characteristic of this study is the integration of model research and business application,along wit
7、h distributed server technology which will be served as the important direction and the start point,and during programming,I will add more elements about entertainment and office application to the system.Moreover,I will take JAVA as programming language and the program will be run on TOMCAT,which s
8、ervred as the server enviroment and. These conditions quitely meet the requirement above,and they will be capable of completing the task.Finally ,the paper will also discuss the advantages of the high efficiency and its expansibility. Keywords: distributed system; java; hadoop; cloud storing;javascr
9、ipt目录 III 目 录 摘要 . II Abstract . II 第 一 章 绪论 .1 1.1 研究背景 .1 1.1.1 云存储的兴起 .1 1.1.2 集群技术的兴起 .2 1.2 研究意义 .3 1.3 本论文的主要内容和结构安排 .4 第 二 章 文件共享存储系统相关技术和理论 .6 2.1 B/S 网络模式的结构工作原理和特点 .6 2.1.1 B/S 工作原理 .6 2.1.2 B/S 的特点 .6 2.2 云存储和云计算的系统分析 .7 2.2.1.云存储的概念 .7 2.2.2.云存储与云计算的关系 .8 2.2.3.云存储系统的结构模型 .8 2.2.4 云存储实现的
10、关键技术 .9 2.3 HDFS 数据管理机制分析 .10 2.3.1 名称节点和数据节点 . 11 2.3.2 元数据 .13 2.4 HADOOP 思想核心 Map/Reduce 机制 .14 2.4.1 JobTracker 简介 .14 2.4.2 TaskTracker 简介 .15 2.5 TOMCAT 和 JAVA .15 2.5.1 什么是 TOMCAT .15 2.5.2 TOMCAT 工作原理 .15 2.6 开发工具 .16 2.6.1 Java 平台介绍 .16 2.6.2 Java 的优势 .17 第 三 章 文件共享 存储系统的分析与设计 .19 3.1 基于 HD
11、FS 云存储服务系统需求分析 .19 3.1.1 问题分析 .19 3.1.2 系统设计目标 .20 3.1.3 功能需求分析 .20 3.2 基于 HDFS 云存储服务系统设计 .21 3.2.1 云存储体系结构 .21 3.2.2 数据库的结构 .22 目录 IV 3.3 系统模块设计 .22 3.3.1 用户信息模块 .23 3.3.2 文件管理模块 .23 3.3.3 娱乐模块设计 .24 3.4 HDFS 的数据管理的方法实现 .24 3.4.1 HDFS 的通信协议 .24 3.4.2 HDFS Java 接口的描述 .25 3.5 本章小结 .246 第四章 文件共享存储系统的实
12、现 .27 4.1 系统的配置 .27 4.1.1 系统硬件环境 .27 4.1.2 系统软件环境 .27 4.1.3 系统安装部署 .27 4.1.4 Tomcat 应用环境配置 .30 4.1.5 MySQL 应用环境配置 .31 4.1.6 web 映射配置 .31 4.2 系统的模块实现 .32 4.2.1 用户注册模块 .32 4.2.2 管理员、用户登录模块 .32 4.2.3 文件操作模块 .33 4.2.3.1 获取 DFS 文件列表模块 .35 4.2.3.2.创建 DFS 文件夹 .37 4.2.3.3.删除 DFS 文件夹和文件 .39 4.2.3.4 上传 DFS 文件
13、 .40 4.2.3.5 下载 DFS 文件 .41 4.2.4 DFS 娱乐办公在线应用 .43 4.2.4.1 DFS 动画及视频播放功能 .44 4.2.4.2 DFS 图片浏览功能 .44 4.2.4.3 DFS 音乐播放功能 .45 4.2.4.4 DFS pdf 阅读器 .45 4.2.5 信息维护模块 .47 4.3 本章小结 .327 第五章 系统测试 .48 5.1 功能测试 .48 5.2 用户界面测试 .49 5.3 安全性测试 .50 第 六 章 总结和展望 . 52 致 谢 .54 参考文献 .55 目录 V 附录 .55 外 文资料原文 .71 外文资料翻译 .75
14、5 第一章 绪论 1 第 一 章 绪 论 1.1 研究背景 1.1.1 云存储的兴起 随着 Internet技术的发展,信息量呈爆炸性增长,数据存储逐渐成为制约企业发展的关键问题。越来越多的企业开始将数据存储分离出来作为独立的项目进行管理。高可靠性、高通用性、高扩展性、大容量,云存储以传统数据中心无法比拟的优势特性,正在成为企业实现提高效率、降低成本的重要选择。 云存储是在云计算 (cloud computing)概念上延伸和发展出来的一个新的概念,因此要了解云存储首先要了解云计算。云计算是一种基于因特网的超级计算模式,在远程的数据中心里,成千上万台电脑和服务器连接成一片电脑云。因此,云计算甚
15、至可以让你体验每秒 10 万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。随着云计算概念的逐步深入,人们开始为海量信息寻找一个新的安身之处一云存储。 云存储 (cloud storage)从一出现就得到广泛的关注和 支持。云存储的概念与云计算类似,它是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。 云存储的兴起使得整个 IT 界处于一个重大的变革期,从以设备 /应用程序为中心转向以
16、信息为中心,而这一转变还将引发一系列的变革,并影响到技术和业务模式两个层面。云存储的最大特点是海量、高性能 、 高访问量以及低成本,而其带来的最大变革是,提供商逐渐从销售工具转向根据工具的实际使用收费,也就是从卖产品转向了卖服务。因此,可以说 云存储不是存储而是服务。 云存储还具有如下的特点:超强的可扩展性、不受具体地理位置所限、基于商业组件、按照使用收费 (如每 G 收 15 美分 )、可跨不同应用等。下面对各大公司的云存储产品作一个简要的介绍,以了解云存储的发展状况。 (1)亚马逊的策略 电子科技大学学位论文 2 亚马逊是最早推出云存储服务的企业。亚马逊最早推出的云计算服务是亚马逊网络服务
17、 (Amazonweb services, AWS),该云计算服务由 4 个核心组件组成: 简单排列服务 (Simple Queuing Service) ,简单存储服务 (Simple Storage Service),弹性计算 云 (Elastic Compute Cloud, EC2)和还处于测试的 SimPleDB。 2008 年 8 月,亚马逊为了增强它在云存储战略上的努力,其互联网服务部门将“持续存储”功能添加到弹性计算云 (EC2)中。该厂商推出了弹性块存储 (Elastic Block Storage, EBS)产品,并声称这个产品可以通过互联网服务形式同时提供存储和计算功能。
18、 (2)Google 的策略 Google 公司在 I/O 开发者技术大会上宣布推出名为“ GoogleStorage”的云计算存储服务,以向亚马逊的 S3 云存储服务发起挑战。从功能设计上看, Google Storage 将参考亚马逊 S3,以方便现有 S3 用户转用 Google Storage 服务。 Google Storage 服务将包括 REST API 协议,以允许开发者通过谷歌账号提供验证下载、数据备份服务。此外,谷歌还将向外部开发者提供数据管理工具和网络用户界面。 (3)微软的策略 2007 年 8 月 10 日,微软就已经推出了提供网络移动硬盘服务的 Windows Li
19、veSkyDrive Beta 测试版。 2008 年 2 月 22 日,微软网络硬盘服务“ Windows LiveSkyDrive“结束 Beta 测试,推出了正式版本,提供 5GB 网络存储空间的同时面向 35 个新的国家和地区开放。 (4)IBM 的策略 XIV 是 IBM 提供的新一代存储产品。它采用网格技术,极大的提高了数据的可靠性、容量的可扩展性、系统的可管理性。 XIV 是在传统的存储设备以上的升级,它具有海量存储设备 +大容量文件系统 +高吞吐量互联网数据访问接口 +管理系统的设计特征。 XIV 由于其独特的设计,使之天生就具备海量的存储能力与强大的可扩展性,能够满足各种 W
20、eb2.0 应用的需求,是一个理想的实现云存储的产品。 1.1.2 集群技术的兴起 云存储的兴起正在颠覆现有的网络存储架构。面对当前 PB 级的海量存储需求,传统的 SANll61 或 NAS 1171 在容量和性能的扩展上会存在瓶颈。如受到其物第一章 绪论 3 理组成 (如:磁盘驱动器的数量、所连接服务器的数量和内存大小和控制器性能 )的限制,会造成很多功能上的局限 (如:支持文件系统的数量,快照或复制的数量等 )。一旦遇到存储系统的瓶颈,就会不断地促使用户升级到更大的存储系统和添加更多的管理工具,由此增加了成本。云存储这种新型的服务模式必然要求存储架构保持极低的成本,而现有的一些高端存储设
21、备显然还不能 满足这种需求。从谷歌公司的实践来看,它们在现有的云计算环境中并没有采用 SAN 架构,而是使用了可扩展的分布式文件系统 (Google File System, GFS)。这是一种高效的集群存储技术。 GFS 是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行在普通的 PC 机上,但可以提供强大的容错功能,可以给大量的用户提供总体性能较高的服务。 今天,互联网上处理的非结构化文件数量非常庞大,频繁的数据传送对 I/O 性能要求非常高,传统的存储架构对此已无能为力。近几年逐渐兴起的集群存储技术 ,不仅轻松突破了 SAN 的性能瓶颈,而且可以实现性能
22、与容量的线性扩展,这对于追求高性能、高可用性的企业用户来说是一个新选择。目前常见的集群存储技术除了 Google 的 GFS 以外,还有 ADIC 的 StorNext FSl2, Cluster File Systems的 Lustre, IBM 的 Total Storage SAN File System 以及 RedHat 的 Global File System。 1.2 研究意义 Hadoop 是 Apache 开源组织口的一个分布式计算开源框架,它可以运行在大中型集群的廉价硬件设 备上,为应用程序提供了一组稳定可靠的接口。同时,它是Google 集群系统的一个开源项目总称, Go
23、ogle 集群系统是使用低成本的成熟技术构建的一个稳定、高性能、高可用性、可扩展的系统,它的底层是 Google 文件系统 (Google File System, GFS)。 HDFS 是 GFS 的开源实现,它是 Hadoop 的底层实现部分,存储 Hadoop 集群中所有存储节点上的文件。 Hadoop 平台虽然是一项新兴的技术,但它的发展非常迅速,究其原因首先在于它将并行计算“平民化 “,它对程序员屏蔽了并行应用开发的细节,程序员只需将精力放在业务逻辑上。其次 Hadoop 平台可以运行在普通的 PC 机群上,极大地降低开发成本,这也让个人研究、实施分布式系统更加容易。 总的来说,本文
24、有以下几方面的意义: (1)现代企业的数据量十分庞大,如何对海量数据进行有效管理成为了企业的关电子科技大学学位论文 4 键问题。如果利用云存储技术解决这个问题,无疑会提高企业的经济效益。 (2)HDFS 可以实施运行在普通的 PC 集群上,极大降低了实施运行分布式系统的成本。 (3)对 HDFS 的研究方法可以推广到别的集群存储技术研究上,为下一步研究打好基础。 (4)Hadoop 平台还没有被广泛地 应用于各行各业,一旦我们在基于 HDFS 的云存储应用研究取得一定的成效,就会对 Hadoop 技术起到推广作用。 1.3 本论文的主要内容 和 结构安排 本文研究内容是基于 HDFS 的云存储
25、服务系统研究,满足企业对海量数据量进行高效存储的需求。解决海量数据存储问题,如果仅仅依靠企业自身不断的硬件升级,提高机器性能来支持,必然会造成成本的巨额增加,而其基于大型机的架构不能随着数据量和访问量的增长而现行扩展。为了缓解甚至解决这个问题,论文提出了构建基于 HDFS 的云存储服务系统的解决方案。本文将从以下几个方面展开研究: (1)学习云存储的相关理论,分析云存储的发展现状、研究意义以及概念等内容,总结出云存储系统的结构模型以及应用情况等。 (2)对 HDFS 整体框架的数据管理机制进行分析,介绍其中的名称节点、数据节点以及数据交互、组织和维护等内容;同时,对数据管理实现的技术方法进行分析设计,为构建一个云存储服务系统奠定基础。 (3)结合云存储的特点和 HDFS 框架关键数据管理机制的研究,通过系统需求的分析,设计出云存储的体系结构、系统功能、数据库结构以及运行环境,构建出一个基于 HDFS 的云存储服务系统。 以下是本文的章节安排: 第 1 章,绪论。介绍了研究背景、研究意义、研究内容以及文章的论文结构。 第 2 章, 文件共享存储系统相关技术和理论 。本章简述云存储的相关理论,介绍了云存储与云计算间的关系,分析了云存储服务系统的结构模型和关键实现技术,以及云存