基于Hadoop2.2.0版本号分布式云盘的设计与实现

基于Hadoop2.2.0版本号分布式云盘的设计与实现

一、前言

在学习了hadoop2.2一个月以来,我重点是在学习hadoop2.2的HDFS。即是hadoop的分布式系统,看了非常久的源代码看的我真的想吐啊,感觉看源代码还是没什么劲,于是心血来潮看到可百度的网盘挺有意思(事实上我一直都在用百度的网盘)对里面的功能的实现非常好奇,于是我就突发奇想,能不能用hadoop来做个呢?答案是肯定的。于是我就開始了,可是实际中,没有人用hadoop来做网盘,由于hadoop不适合存放小文件。当然办法总是有的,比方小文件能够存入HBase中。hadoop2.2.0这个版本号与hadoop1的版本号有不同,且在源代码上也有非常大的区别。引入了Yarn这个资源管理框架,眼下YARN能够管理的资料类型包含了CPU和内存,未来可能会增加对磁盘和网络等类型的支持。眼下YARN能够支持的框架包含:MapReduce(批处理框架)、Storm(流式处理框架,项目为Stormon YARN,主要由Hortonworks在推进。正式版本号未出但可用,yahoo和淘宝等在内部已经大规模使用)、Spark(内存处理框架,项目为Spark on YARN,主要由Cloudera在推进。正式版本号未出但可用,淘宝等在内部也已经大规模使用)。
正在YARN上开发且未来比較靠谱的框架有:Tez(DAG框架,继承自MapReduce,性能有巨大提升)、Hoya(将HBase执行在YARN上,主要由Hortonworks在推进)。

二、设计与实现

採用了Struts2+tomcat7+mysql+Ajax+hadoop2.2来部署架构整个系统。

2.1 架构 

Struts2确实在网页的开发阶段比起单纯的jsp和servlet又更上一层楼。本人也仅仅是了解Struts2那么一点。发现有项目驱动可能学习某个知识点更快,你们说呢?tomcat是众所周知的,用作webserver。mysql在这里我仅仅用作登录验证。Ajax则主要是负责在上传的时候显示运行进度条的作用。hadoop2.2主要提供HDFS分布式存储。而且用到了其相关的Jar。

事实上不管是百度的网盘,还是360网盘,还是华为网盘,其无非都是类似于像Hadoop这种做分布式存储,前台展现给客户。分布式存储有的是用openstack。还有的像淘宝的TFS,华为的自己开发的云端系统,华为OceanStor CloudStor CSS云存储等等吧。。

2.2 本系统实现的功能

(1)显示用户系统下全部文件列表
(2)实现上传、下载、重命名、删除文件功能
(3)实现client音频(多数格式的)音乐播放功能<暂不支持视频播放>
(4)实如今线图片预览的功能
(5)实如今线文本文档的浏览功能

三、Hadoop2.2分布式云盘的界面

1、欢迎页面


2、登录页面


3、系统主界面


4、文件上传界面


5、图片预览


6、音乐播放


7、文本预览




四、总结

作为研究生,本应该研究研究理论性的东西,说实话,理论这东西不读个博士什么的我个人认为在短暂的这两年多时间里,可能研究不出什么玩意来。纯属个人意见,呵呵。这个系统还是有一些BUG的。以后有时间还的继续改动。我还是对大数据非常感兴趣,可是怎样操纵大数据呢?光靠Hadoop是远远不够的,还能够结合数据挖掘,数据仓库,算法等去捣鼓捣鼓可能有效。这个系统算作本人的个人作品吧,麻雀虽小,但还是五脏俱全。主要是一段时间不写点程序,有点不舒服的感觉。呵呵。另外我想说hadoop2源代码太多了,哎,慢慢看吧,不结合实战练习的话,没多大效果我认为。如今还有非常多课要上,恩多论文要看。在过两个月,全部的课程最终结束了。。。期待中。。。。。。。。


posted @ 2015-03-31 16:24  zfyouxi  阅读(1935)  评论(0编辑  收藏  举报