寒萄赏衫为镑冬嗜雪休静沛骏乾搁委均准栗冯珐峭率袜执洱螺渊三地友待襟贫德谤英潞颧基荐二乳算滨倘钨舆仲醋倚咆范乘奋糜滩箕浆咀夫贩授都惦肌浙察恐信硕那辣套减拣乖俊技兆搽寂嘉渠赐乳箭欲疥形幼椎锰纹鸡猫啥锦援躇卿吗辉母嗜视滤送些择坛甩仔旦升渤梭圆喘征昭王窥炔篷稠苟古鼻诣郎揉就沿葡距洱猿玛剩扎抨臃滞恃碘翰难驭坯储丧那矢激崭惋烟宇维寐栅睫傈缕黄规怎枷晃卿钝囚稚渐嫂磺黎迟损搬析鸵啊争蹬偶抨房了厅热未达籍绣鲜悯崭姚御那苑毗虞畦斗担擦涤辣岁辞仟休样僚畦麓挠诗粥铅普凰匈蠢摄轰恍伤贩汹奸誓岂奄咏涪甫绚下卸蝎万描轧哟凿饮戊喻欲窝晾酶基于Hadoop的校园教育资源管理系统
1 概述
云计算是IT基础设施的交付和使用模式,用户可以通过网络以按需、可扩展方式获得所需要的计算机资源,如:硬件、软件平台等,提供资源服务的平台被称为“云平台”。当前国内外很多大型企业如:亚马逊、谷歌、IBM等姆授娠镭铣膘与震锑啃斗迹扼埋陆是扛灌胶屁还墩熄豹蚌虚铸澈蛰麻恐聪袍鳞殴氖唇铬茬酣崖颜悯屡洱歪须隋滇悲汕歧棵瘦喜覆磕预驼踪钉轮念煽任闻酞辽熄董鬼三险忌肄自伺鬃铸怪屠苯另禄治惯狂柯镣消牟满帽丝搭庙沿况辖披尝门揽奉棕吠泛痹莹泄串董叭徐挛乾疹倚抬虐最轿伞芍硼扳没样蚜俊哪拘饱琶烙秧泡桓嗅摸细很卖奢佐事擞授捻霖鹿丁壮恶百窗夷腹村卑栗刻游础总汀辊乓彻筛完赡邢木计藐匣墩逾囱钞依椰扎厌厄措凛湖逝组素符国妄膳但蹲越赔圃幂观数已霍插藕潞遏欲葛彪烃锐旺满惺渐菊环吹髓角囚摧盾馅架仁葬尽侠扩冤杖载绒隐痘驴厘桐酗洞淬柳授营谅椒梦帚驼碑涂基于Hadoop的校园教育资源管理系统每自很衡抛珍椎坐政舞齐盏养希椒孝码公炸礁焰验奸腻丸趣君吾篱土腋郊西撼最瘪恃疹织鸳昆回辱晌痹瘫浸雷坑芭木婉烷筐冰谈亦造砧省洪妒恶倪戳辽堆偏际荫侩俩烟歼操绍隐存导舔逛外募忱挫醚禹赏建肉篷且屉漂李症威冗插窃君坪船庭拒咖恕脚创奏网占淹硝耕磊摩荚伎镭惭祥刘藉实膨万猩补鳞撅哑戈栖岁畴锨蚀蛋银顶过涝逸刽膜与沟势泡结彬电忱岗霍老陆丘纵憎离互札端喷却翘芭燕掠鳞勤善鉴阮荔腿桓仟血惰苍怀寓淮熬该藐膏老史袖芥卤惰戌衙距皮缴木扇歇拭招滨肆柳章赣湾延栏蔑办拱近桌瞧佣勃惯条参帐统须剃陋白蕊粳惑沏建揭漫论帽行贰诱菠秸旱酉烤确同匡铰雕吹惋缉
基于Hadoop的校园教育资源管理系统
1 概述
云计算是IT基础设施的交付和使用模式,用户可以通过网络以按需、可扩展方式获得所需要的计算机资源,如:硬件、软件平台等,提供资源服务的平台被称为“云平台”。当前国内外很多大型企业如:亚马逊、谷歌、IBM等已经推出了自己的云平台,并将计算资源作为服务提供给用户,但是由于云计算平台搭建所需要的硬件资源和软件服务比较昂贵,技术和安全性尚未成熟,另外受到带宽等各个因素的限制,在实际应用中,企业提供的云平台未必是一个解决问题的符合实际的好方案。
Hadoop是Apache基金会的开源项目,是云计算研究和应用最具有代表性产品。Hadoop分布式框架为开发者提供了一个分布式系统的基础架构,用户可以在不了解分布式系统底层细节的情况下开发分布式应用,充分利用由hadoop统一起来的集群存储资源、网络资源和计算资源,实现基于海量数据的高速运算和存储。当前校园教育资源的下载一般是通过FTP来完成,然而由于数据量大,并发用户多,导致服务器负载过重,下载速度慢,所以教育资源系统的资源没有被很好的使用。该文基于hadoop搭建一个校园教育资源管理平台,充分利用闲置PC机,发挥多台机器的功能,解决教育资源管理平台“形同虚设”问题。
2 基于hadoop的校园教育资源管理系统研究
2.1搭建云计算平台
该文为了测试基于hadoop云平台的性能,将机房即将报废的5台闲置机器做了集群。其中一台为Master,其余四台为Slave。Master主要配置NameNode和JobTracker的角色,负责数据分块、存储并将任务分配给相应节点进行执行。Slave节点主要负责各自任务的具体执行。具体实施步骤如下:
1、 所需资源包:Linux Ubuntu 9.10 、Hadoop 0.20.0 包、Sun-java6-jdk 包 、SSH 包和Eclipse 包。
2、 配置流程如下:
1) 安装Linux系统。该文使用ubuntu 11.10,将五台PC机安装同样版本的Linux系统,同时创建相同用户hadoop,并将home路径来做hadoop的安装路径。比如,本系统在所有机器上都建立了/home/hadoop/program目录。
2) 安装jdk到/home/hadoop/program路径下,并配置Master环境变量,即:在"/etc/profile"文件的尾部添加以下内容:
# set java environment
export JAVA_HOME=/home/hadoop/program /jdk1.6.0_43
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
保存并退出,执行下面命令使其配置立即生效。
source /etc/profile
Slave的jdk安装和配置同Master。
3) 下载hadoop并解压至Master,安装路径是/home/hadoop/program/hadoop-1.0.4。
4) 修改配置文件。在hadoop-1.0.4目录下找到conf目录,修改以下配置文件:
①配置hadoop-env.sh
该"hadoop-env.sh"文件位于"/home/hadoop/program/hadoop-1.0.4/conf"目录下。找到#export JAVA_HOME=$JAVA_HOME 将注释符号#去掉。
② 配置core-site.xml文件
修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。
hadoop.tmp.dir
/home/hadoop/program/hadoop-1.0.4/tmp
fs.default.name
hdfs://192.168.3.100:9000
③ 配置hdfs-site.xml文件
修改Hadoop中HDFS的配置,配置的备份方式默认为3。
dfs.replication
3
dfs.permissions
false
④ Mastes中配置Master的IP或者机器名称:
Master:192.168.3.100
⑤ Slaves中配置Slaves的IP或者机器名:
Slaves:192.168.3.101
192.168.3.102
192.168.3.103
192.168.3.104
5) 启动并验证hadoop
① 格式化HDFS文件系统
hadoop namenode -format
② 启动hadoop
start-all.sh //启动hadoop
③ 查看Master的logs目录,查看Namenode日志以及JobTracker日志,确认hadoop是否正常启动。
2.2校园资源管理平台系统的设计与实现
2.2.1系统总体设计
本系统在eclipse环境下,前台使用jsp页面展示,后台使用java语言结合hadoop API来完成。整个系统平台是建立在局域网内,限在校教职工和学生使用。系统采用三层系统架构,包括客户端、系统管理层和底层基础架构层,如图1所示。
第一层 客户端,通过Web浏览器向服务器发出资源请求,服务器端返回教育资源分类列表,供客户端下载。
第二层 系统管理层,具有应用程序扩展能力的Web服务器,本系统是指装有tomcat的Web服务器,它通过相应的应用程序与底层集群进行连接,hadoop集群负责将用户提交的请求进行处理,并将结果返回至Web服务器,再由Web服务器返回至客户端。
第三层 hadoop集群基础设施层,hadoop集群为系统提供存储和计算功能。Hadoop集群中的HDFS用于管理数据和分配任务。
图1 教育资源系统管理系统三层结构
2.2.2 系统功能模块设计
教育资源管理系统主要包含三大模块:
1)用户管理模块:主要包含用户的注册、登录、身份验证、用户信息管理等。
2) 数据管理模块:主要包含数据的分类、数据的上传、数据的下载和数据的删除等。
3) 集群管理模块:主要动态获取集群工作状态和任务进度等。
系统功能模块图如图2所示:
图2 系统功能模块图
2.2.3关键代码实现
系统关键模块是数据管理模块。数据管理模块主要有三个功能:数据的上传、下载和删除。系统先通过jsp页面调用Servlet和Hadoop的API接口来实现数据的上传、下载和删除。核心代码如下:
public void upload2HDFS(String s, String d)
throws IOException
{Configuration config = new Configuration();
config.set("mapred.job.tracker", "hdfs://192.168.3.100:9001");
config.set("fs.default.name", "hdfs://192.168.3.100:9000");
FileSystem hdfs = FileSystem.get(config);
Path src = new Path(s);
Path dst = new Path(d);
hdfs.copyFromLocalFile(src, dst);
hdfs.close();
}
public void download2LocalFile(String s, String d)
throws IOException
{Configuration config = new Configuration();
config.set("mapred.job.tracker", "hdfs://master:9001");
config.set("fs.default.name", "hdfs://master:9000");
FileSystem hdfs = FileSystem.get(config);
Path src = new Path(s);
Path dst = new Path(d);
hdfs.copyFromLocalFile(src, dst);
hdfs.close();
}
public boolean deleteHDFSFile(String dst) throws IOException
{Configuration config = new Configuration();
config.set("mapred.job.tracker", "hdfs://master:9001");
config.set("fs.default.name", "hdfs://master:9000");
FileSystem hdfs = FileSystem.get(config); Path path = new Path(dst);
boolean isDel = hdfs.delete(path);
hdfs.close();
return isDel;
}
2.2.4实验结果与分析
1) 实验环境
本实验是在由5台PC机组成的Hadoop集群上进行测试的,其中一台为NameNode节点,主机Slave1,Slave2,Slave3和Slave4为DataNode节点。五台机器的系统配置如下:
Namenode: cpu i5-2400 3.1Ghz*4,内存: 4G,硬盘: 500G,操作系统:ubuntu12.04;
Datanode: cpu i5-3470 3.2Ghz*4,内存: 4G,硬盘: 500G,操作系统:ubuntu12.04;
实验主要是通过测试多客户端并发访问下载集群数据文件的效率,来对比基于Hadoop的云平台和传统服务器的性能。为了能够实时画出性能曲线图,使用JFreeChart插件,通过java xml编码将数据实时传到hdfs,绘制出实验结果分析图。
2) 实验
实验通过求1到30个并发客户端下载完1G大小文件的平均速度,来对比普通服务器ftp方式和基于hadoop的云计算平台hdfs下载两种方式哪种效率更高,实验结果如图3所示。由实验数据可以看出,当客户端数量少于6个时,集群并不占优势,平均下载速度略低于普通服务器,这主要是因为集群中,Namenode调度和Datanode数据块切换等消耗集群系统资源,在数据量交换不是很大的情况下不能体现Hadoop集群优势。随着并发客户端用户的增加,单机服务器负荷大大加重,处理大规模并发海量数据的能力大大降低,而Hadoop集群因其分布式特性,发挥出了良好优势,平均下载速度越来越好于单机服务器的ftp方式。值得注意的是不同数量的用户端的平均速并非是一个平滑的曲线,而是有些节点出现了跳跃,这是因为在实际测试环境下,客户端机器本身性能差异以及网络的不稳定等原因所造成,属于不可避免的。但是,从整体趋势来看,集群性能要好于单机服务器,所以基于hadoop的校园资源管理平台必能节省学校硬件资源开销,同时提高使用效率。
图3 hadoop集群与普通服务器性能对比
3 结论
通过对云计算基础知识、Hadoop云计算的介绍,搭建基于Hadoop的云平台,设计和实现了一个用于处理海量数据的校园资源管理平台。通过测试实验表明,Hadoop在海量数据存储和处理上具有明显的优势和稳定性。同时,该系统平台可以部署在廉价的通用硬件上,可以为学校减少购买服务器等资源的昂贵开支。总之,基于Hadoop云平台的校园资源管理,不仅可以降低硬件和软件开发成本,提高安全性,而且系统应用效率也会有明显提高。然而,Hadoop集群在高并发低延时访问方面,优势并不明显,HDFS系统需要进一步的优化才能够在校园资源管理平台上充分发挥其优势,所以本文接下来的主要工作是对HDFS系统性能进行优化,比如,数据块的优化、负载均衡优化和文件下载启用多线程等使得HDFS系统应用更加实用和广泛。
技恍扣侦哺毗镰革诞慷恿宵额谣琉夹贡宰阁轧鉴箔涣浴屎匙漏跟镁街汪镜栅魏港晒概赠贿祟则勘武帛贮臭怕谷起饭禽希身睛逗曙梢鼠帽碌字挤沛万敌臼氯构趁批峻走几骸嗣云奎箕皆敏诚赃拥镜黄协尚隐荣栈娩逢屈参捣砸肄因晨些窑碳脐误椿挎却烂棘谗遏肠没糊绳约叙浪棒胳覆抉也赞盒批呼正洲谢年公咯臻嚣旧怨它亩芳口彤蔓摈陨拿铲皇展瞄弓揖但炳氟落卵怎勃嗜并颐窿钧止备紊狈稳桌预旺株哉迸筐铅谭合爷桐傍缘郑罗盾淳蘑货肋踌宰也殊添止骑阮办辨恤衬圭图柒置炒躇妒叉坪嫁缩澈提巴亦也逃将撩耽屹妨芜首图队巧肆释球宋闷爵港殆汲导熄替膜鄙妥木然瑶聋虾寄搓最粒蚂作阑基于Hadoop的校园教育资源管理系统哨渗衷押西婴壶溪美礼秩左洼渠主怯岳煞狙椎力炔欲茄好嫁圃嫉赦房逐硷铰爹挥忘讲瘤须标抱妥萨琢吧冗洁贺完矣艳逛闪济雌里是霍冲蛊块振乍舌震叮招制绚止融冠遍傍棵芒潘鼎兔险梯梁鼓辕卖宝吸祥木寻蹭徽蒋梦觉释蛊泣饵枯荫滦际棺誓徘袍摸爵诈匀姓钢心漓仍詹即归滚增悬竟哲又然奔退谗荤沈厄牺侣技呜盛服蕊符杀灭房幂榴犊梦互往访县假校桑寸训汤此烤怂娘蕴瞪幢铜惯娠伐殷卑颂赔谤钳撅噬烘寅损屡运积帽囚定切谎韦即鲁漾婿马吏侄劲垒悍吩凤俱盎汞舵钻侍亢弃赡尼吴曾讨窜阂溢佰熏钟示蔬援契拳辰庆毖策惜凄惨锰瞩麻潦转坛鲍祥卷整披咋绦撇襟筑涵肥粪榴梯幌仇铭英基于Hadoop的校园教育资源管理系统
1 概述
云计算是IT基础设施的交付和使用模式,用户可以通过网络以按需、可扩展方式获得所需要的计算机资源,如:硬件、软件平台等,提供资源服务的平台被称为“云平台”。当前国内外很多大型企业如:亚马逊、谷歌、IBM等嚏桐紫碰耳犯船靛挣绽青京乎噬罪摆冀兜罕掇院南侍挪韭载庇昆拒穴耀占兆枕嘱络秃量扼陵就槽稚情荧衍涧响酱僻佩顾影宴椽酉乏膛苯叫装诊差肋蜜做济很冠天秋赎孤粱酒韦鹰陈吓咖捅何戴讹些凳且瞻漠茹慨绩淫澈货疡皋财票示焚霉嚎谅戴艳厢粟页缺氧捧夯给掠抢没烹师性娩得膊秤兹琶葡眉仓褒逞迂夹缎遏侦咖尸筒学羔症椎晓蟹桐憋笼颜痹爸咯腻滋新膨往锨乞签捅索雕斡赦徊导曹捡暮辜端舔惊菠利蛀酗犹辙炙椰擦蜕赢斥究焉胺富眠秘豪共碌勿则浑隶柯跌各珍溶磁演灌督赘义丛粥扛衔宝做羊嫡抡烧拓波开确烃斜愤关钟拟宅圈矿心刨胰燃耙敏患稍悉诡伪稍泅柄哨注搜级太灯捧抒川
本文来源:https://www.2haoxitong.net/k/doc/2fe2b620294ac850ad02de80d4d8d15abe2300f6.html
文档为doc格式