- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Hadoop校园网盘设计与实现
基于Hadoop校园网盘设计与实现
摘 要:目前,大多数学生均使用U盘进行数据存储,但这种方式存在数据容易中毒、U盘容易丢失、无法在实验室和寝室间同步等弊端,为此,需要开发一个以校园局域网为依托,可供学生使用的校园网盘。利用该网盘,学生可不再使用U盘进行数据存储,在校期间所涉及的所有数字化文件均可存储其中,同时,还可实现教学区域与寝室的数据同步,既保证了数据存储的安全性,又极大地提高了数据的应用效率。此外,校园网盘采用Hadoop架构完成整个底层系统的搭建,属于“云计算”应用的技术范畴,能够充分利用学校目前已有的PC机资源,降低项目投入。
关键词:Hadoopp;HDFS;网盘;云计算
随着计算机在高校教学中的普及,各种文档、数据、程序等数字化文件成为了高校学生非常重要的学习资料和学习成果,大到毕业设计文档、毕业设计项目,小到课程PPT、作业,涵盖了学生学习生活的各个方面,如何安全、高效的存储这些文件就变得非常重要。因此,以“云计算”架构Hadoop为基础,依托校园网环境,设计并实现校园网盘,就成为了一种可行之道。
1 方案论证
1.1 技术可行性
由Hadoop HDFS为网盘提供高可用,分布式的存储架构支撑。HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。其具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理带来了很多便利。
1.2 操作可行性
基于HDFS的分布式存储相关研究,主要包括HDFS集群中小文件处理,副本存放策略和机架感知以及NameNode备份恢复机制和拓展机制。HDFS集群中小文件处理包括三种方案,分别是Hadoop Archive,Sequence File和CombineFileInputormat。副本存放策略和机架感知能够让NameNode获取DataNode的网络拓扑图,然后根据DataNode之间的关系来确定副本存放的位置,保证数据可靠性的同时兼顾了数据传输速率。NameNode备份恢复机制通过定期对NameNode中元数据信息备份合并形成新的检查点checkpoint保证NameNode元数据的安全。如果NameNode出现宕机故障,可以节省NameNode重启时间,甚至恢复丢失的数据。HDFS的可拓展性体现在动态新增DataNode,能够满足大规模数据增长的需求。
2 系统架构设计与实现
2.1 系统结构设计
系统主要由四部分构成,分别是用户层,系统管理层,数据存储层和基础设施层,(1)用户层:用户通过WebApp服务器发送Ajax请求,服务器响应相应的json数据到浏览器,前端通过Angular JS框架调用响应功能REST接口返回数据,最后通过Angular JS双向数据绑定自动完成对页面数据进行渲染。(2)系统管理层:负责应用程序与底层数据操作连接,采用JFinal MVC框架对大量文件,用户操作封装为REST接口,提供前端Web页面的接口的数据返回,把用户需要的数据结果以json格式传回客户端。主要提供用户管理,目录管理,文件管理等服务。(3)存储数据层:Hadoop集群工作在这一层,由HDFS,Jetty构成,HDFS提供分布式存储支撑,一个NameNode存储文件的元数据,多个DataNode为文件提供存储实现, Jetty服务器提供外部REST接口调用功能。同时这一层也大量封装了对HDFS的操作。(4)基础设施层:即搭载Linux系统的硬件基础设施,主要包括磁盘,服务器等。
2.2 系统功能实现
本系统旨在一个在校大学校的一个存储服务。系统设计包括用户文件管理模块和管理员模块。用户文件管理模块:为在校师生提供用户登陆,文件上传,下载,删除,重命名,目录查看,创建等功能。管理员模块:主要提供用户管理(添加,删除),文件管理。
2.3 关键技术实现
系统在实现过程中,主要实现了对文件的上传,下载。浏览器通过调取REST接口,Controller通过调用相应的Service来返回相应的数据,Service调用DAO,而DAO的核心代码都是通过HDFS的相应API来完成的。
上传功能的核心代码:
public boolean upLoad(InputStream in, String hdfsPath){
Path p=new Path(hdfsPath);
try{
if(fs.exists(p)){
文档评论(0)