Research and Development of File Storage System based on Hadoop
中文摘要
云计算是网格计算、分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物。Apache开源社区开发和贡献的Hadoop,作为MapReduce计算模型和GFS的一个开源实现,它已成为一个可靠性好、扩展性强的分布式计算和存储平台,被越来越多研究机构和公司用于数据挖掘、日志分析、广告计算和科学实验等。
基于Hadoop的文件存储系统是一个私有的专用网盘系统,具有强大和简单易用的文件管理、协同办公、部门或虚拟团队级文件共享等丰富功能。与免费的个人网盘相比,具有更强的团队协同功能,在组织架构、共享权限上能适应中小企业的需求。
基于Hadoop的文件存储系统主要就是研发这样一个系统,包括系统前台和系统后台两个部分。以下主要描述了系统后台的开发流程,通过该流程将对采用JavaEE技术和云存储技术对系统进行设计以及具体实现。
系统后台的开发是采用Java语言,使用Struts2+Hibernate3.2+Spring2.0等JavaEE开发框架,使用Hadoop的分布式文件系统HDFS存储文件,数据库采用关系型数据库Mysql5.6。
关键词:Hadoop;文件存储系统;云存储;HDFS;
1、系统的研发意义
随着信息技术地不断发展和高校办学规模越来越大,高校的行政办公和教学活动中时刻进行着海量数据资源的产生和流通,信息共享交流更加频繁,如各类文档文件、教学课件、多媒体素材等都需要频繁使用。移动存储设备由于使用不便和共享困难等一般适用于存储个人数据;E-Mail使用较方便,但不适用于存储传输较大的文件;网上邻居等局域网共享方式受到校园网结构的制约无法很好的满足用户需求;FTP功能相对强大,但是服务界面简陋,有些用户使用起来有一定困难。因此,如何在安全、便捷、可接受代价的前提下向用户提供大容量、高可靠性的网络存储业务,成为了信息化建设的一大课题。于是网络硬盘应运而生,摒弃了以上不足。但随着存储技术的不断发展,传统的网盘技术已经显得力不从心,存在传输速度慢、容灾备份及恢复能力低、安全性差、营运成本高等诸多瓶颈。
而近年流行的云存储技术推动了网盘行业的浪潮,如百度云网盘、腾讯微盘、360云盘、华为网盘、115网盘、七牛存储等产品。云计算架构的分布式存储技术能充分利用其技术,结合超大规模、高可扩展性、廉价性、高可靠性等特点来满足当前PB级的海量数据存储管理要求。云存储是构建在高速分布式存储网络上的数据中心,它将网络中大量不同类型的存储设备通过应用软件集合起来协同工作,形成一个安全的数据存储和访问系统,适用于各大中小型企业与个人用户的数据资料存储、备份、归档等一系列需求。尽管业内已经提供了大量云存储服务相关的产品,由于目前的云存储服务大多是商业化产品,对企业网和校园网的信息化建设来说,在数据安全和价格上都是问题。
因此,采用Hadoop的分布式存储技术开发这样一个能满足海量数据存储、高效可靠、安全稳定、低成本等网盘系统有着十分积极的意义。
2、网盘技术的发展概况
随着移动互联网大潮的到来,随时随地办公、学习、娱乐等成了可能。人们无时无刻在产生文档、视频、照片等文件,同时又迫切的需要随时随地去调阅、编辑、保存这些信息数据,此时,帮助用户方便、快捷的储存、调用这些文件的网盘应运而生。
网盘最初是解决发送大文件问题,以及满足网民对于一些好的资料的收藏而推出。网盘需要投入相应的硬件设施,同样需要有一定的带宽,这样也就增加了相应的成本。目前国内的网盘主要分为2种类型,一种是为娱乐资源类型,一种是专注于网络存储的应用型。从互联网的发展角度来说,很多的网盘都是打着免费的旗号在运营着,但是随着用户数的增加,以及原本网速这道坎,导致很多运营商的发展有点难堪。
近年来,由于新兴起的云计算与云储存技术研究浪潮,网盘行业经历了一次革命。互联网行业巨头百度、金山、腾讯、360等都纷纷涉足网盘行业。甚至打击起暴力营销战,突然都为网盘“掐”起来。先是金山快盘推出100G容量;360随后跟进,宣称只要完成几个简单任务,就可获得360G的容量;而后百度网盘继续跟进,花1块钱就可以获得1T永久容量的网盘;向来凶猛强悍的360,干脆送给用户1T的容量,还是永久免费…连传统的IT企业也不甘落后,华为网盘推出惊人的“无限空间”终结了这场无底线的混战。
各大互联网巨头都在极力打造一个属于自己的网盘整合平台,通过平台提供各种用户常用的服务,例如下载、分享、支付、社交等来建立起庞大的帝国。在国外无论是Google、苹果还是微软,都将网盘纳入自己的账号生态系统;在国内,迅雷依托下载、金山依托办公、腾讯依托QQ和微信、360依托安全软件和安全浏览器,都在不断扩展自己的领域,形成属于自己的平台,掌握了流量的入口。这些巨头公司都想搭生态、做循环、留住用户、圈住开发者,那么网盘就是其中很重要的一个基础建设项目,自然成兵家必争之地。
网盘的发展在后期,随着国内网速的提升,以及对于网盘的便利性在网民中的普及,再进一步提升速度和安全,打造品牌个性云服务,应该会有很好的发展。
3、系统采用的技术架构
基于Hadoop的文件存储系统后台采用的开发技术是:Struts2+Hibernate3.2+Spring2.0+Jsp+JQuery/Ajax+Hadoop/HDFS,采用MVC三层的开发模式,将项目分为一下几层:
表现层(V):Jsp+JQuery/Ajax
控制层(C):Struts2
业务层(C):具体模块的业务方法
数据访问层(M):Hibernate+Hadoop/HDFS,Hibernate处理的是网盘系统产生的用户数据,调用Hadoop的HDFS接口来存储用户真实的文件数据。
4、Hadoop云计算技术简介
Hadoop 是一个分布式系统基础架构,由 Apache 基金会开发,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力高速运算和存储。
Hadoop 实现了一个分布式文件系统(Hadoop Distributed File System,HDFS)。 HDFS 有着高容错性的特点,并且设计用来部署在低廉的硬件上。而且它提供高传输率来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS 放宽了POSIX 的要求这样可以流的形式访问文件系统中的数据。Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如C++。
5、经济的可行性
基于Hadoop的文件存储系统使用的技术或框架(SSH框架、Mysql数据库、Hadoop)都是免费开源的,不涉及版权和价格问题。Hadoop集群对集群的机器要求也不高,普通机器集群就可以发挥Hadoop处理海量数据的优势。该系统采用的是Java开发的,因此可跨平台运行,window和Linux均可,但Hadoop集群是Linux机器集群是必须的。因此,该系统在经济上是完全可行的。
6、操作的可行性
基于Hadoop的文件存储系统对于服务器端和客户端所要求的软硬件的最低配置在大多数的用户计算机都能达到,现有的开发工具(MyEclipse、Mysql)完全能够实现,而且本系统对管理员和网盘用户没有任何的特殊要求,实际操作基本上以鼠标操作并辅以少量的键盘操作,操作方式很方便,因此本系统具有良好的易用性。
7、文件存储系统功能演示
普通用户功能:
管理员功能:
本网盘由广西大学308实验室提供。
微信号:weiyou308