99网
您的当前位置:首页基于Hadoop的校园云存储系统的研究

基于Hadoop的校园云存储系统的研究

来源:99网
2012年8月 陕西理工学院学报(自然科学版) Journal of Shaanxi University of Technology(Natural Science Edition) Aug.2012 第28卷第4期 V01.28 No.4 [文章编号]1673—2944(2012)04—0030—06 基于Hadoop的校园云存储系统的研究 高新成 , 王莉利 (1.东北石油大学现代教育技术中心,黑龙江大庆163318; 2.东北石油大学计算机与信息技术学院,黑龙江大庆163318) [摘要] 针对海量数据的存储问题,传统方法一般是通过购置更多数量的服务器来提升计 算和存储能力,存在硬件成本高,存储效率低等缺点。通过对Hadoop框架和MapReduce编程 模型等云计算核心技术的分析和研究,提出了一种基于Hadoop框架的海量数据存储模型,并 在此模型的基础上,设计并实现了基于Hadoop的校园云存储系统。经过实验验证,该系统有 效地解决了在校园办公、教学和科研过程中遇到的海量数据存储管理问题,具有开发成本低、 处理速度较快、运行稳定、易于扩展等特点。 [关键词]Hadoop; MapReduce; 云计算; 分布式计算; 存储模型 [文献标识码] A [中图分类号] FP393.071 随着计算机网络技术的快速发展,高校对信息化的要求越来越高,需要处理的数据量也不断增大。 如何存储和管理在教学和科研过程中遇到的海量数据,成为一个研究热点。云计算是一种基于因特网 的超级计算模式,它把计算任务分配给大量计算机构成的资源池t,能够使应用系统根据需求获得相应 的计算能力、存储窄问和软件服务。本文在云计算核心技术Hadoop 架构基础上,设计并实现了校园 海量数据存储系统。该系统的服务器使用Linux操作系统,采用MapReduce编程算法实现并行处理,不 仅町以满足埘海量数据快速处理的要求,而且对硬件配置要求不高,可以充分利用现有的硬件资源。 l相关技术介绍 1.1 HDFS系统架构 HDFS【2,3i(Hadoop Distributed File System)是一个运行在普通硬件之上的分布式文件系统。HDFS 系统采用Master/Slave 框架,一个HDFS集群系统是由一个Master和多个Slave构成。前者叫做名字 节点(NameNode),是一个中心服务器负责元数据的管理工作,主要包括文件系统的名字空间管理和客 户机对文件的访问操作。后者叫做数据节点(DataNode),在集群系统中一般一个节点是由一个DataN— ode构成的,主要负责对节点上它们附带的存储进行管理。 HDFS系统中文件的目录结构存储在NameNode上,对于具体的文件数据来说,一个文件数据 其实被拆分成若干Block,这些Block冗余存储在DataNode集合数据里。NameNode负责执行文件系统 的Namespace管理1 作,主要包括关闭、打开和重命名数据文件和目录等操作,同时负责建立Block和 DataNode节点的映射关系。客户机的读写需求是由DataNode节点响应完成的,同时DataNode节点在 收稿日期:2012-05—16 基金项目:黑龙江省留学 国科学研究基金资助项目(LC2009C1 1) 作者简介:高新成(1979一),男,黑龙江省木兰县人,东北石油大学讲师,博士生,主要研究方向为云计算、分布式计算;王 莉利(1979 ),女,黑龙江省大庆市人,东北石油大学讲师,=E要研究方向为计算机网络通信。 第4期 高新成,王莉利 基于Hadoop的校园云存储系统的研究 NameNode的统一指挥下进行Block的创建、删除和复制等操作。 1.2 MapReduce编程模型 MapReduce 是一种编程模型,是云计算的核心计算模式,用于大规模数据集的并行运算。Ma— pReduce借用了函数式编程的思想,把海量数据集的常见操作抽象为Map(映射)和Reduce(化简)两种 集合操作,大大简化了程序员编写分布式并行计算程序的难度。MapReduce数据处理流程如图1所示。 输入 Map任务 Reduce任务 输出 图1 MapReduce数据处理流程 通过Map函数将被分割后数据映射成不同的区块,然后由计算机集群对分配的数据进行分布式运 算处理,再由Reduce函数对数据结果进行统一汇整,最后输出用户所想要的数据结果。MapReduce的 软件实现是指定一个Map函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简) 函数,用来保证所有映射的键值对中的每一个共享相同的键组。 1.3基于Hadoop的海量数据存储模型 通过对云计算的分布式、并行计算和存储等技术的研究,本文提出了新的基于Hadoop的海量数据 存储模型,如图2所示。 从图2中可以看出Master包括NameNo— de和JobTracker,Slaves包括DataNodes和 TaskTrackers。HDFS的工作主要由NameNode 和DataNodes共同完成,MapReduce的工作主 要由JobTracker和TaskTrackers共同完成。 模型工作流程:服务控制集群SCC(Serv— ice Controller Cluster)主要负责对用户应用请 求进行接收,并根据用户的请求完成应答工 作。存储节点集群SNC(Storage Node Cluster) 主要负责处理数据资源的存取工作。Job— Tracker可以运行在集群系统中的每一台计算 机上,主要完成管理和调度其它计算机上的 ———— 控制流 …◆ 数据流 图2基于Hadoop的海量数据存储模型 TaskTracker。不同的是TaskTracker必须运行在数据存储节点的DataNode上,主要完成执行任务工作。 JobTracker负责将每一个Map和Reduce任务分配给空闲的TaskTracker处理,完成对每个数据文件并行 计算处理任务,同时对每个任务运行完成的情况进行监控。当其中一个TaskTracker发生故障时,Job— Tracker会主动将其负责的任务转交给另外一个空闲的TaskTracker重新执行完成这个任务。用户本身 不直接通过Hadoop架构进行读写数据,这样可以避免大量的读写操作造成的系统拥塞。当用户通过 Hadoop架构把信息传给SCC后,将直接与存储节点进行交互,同时完成数据读取操作。 2校园海量数据存储系统的设计与实现 针对校园网中对海量数据处理的业务需求特点,在Hadoop框架的基础上,运用MapReduce编程模 ・31. 陕西理工学院学报(自然科学版) 第28卷 式,设计并实现了校园云存储系统。 2.1系统结构设计 系统由四部分构成,分别为用户层、系统管理 层、数据存储层和基础设施层,系统架构模型如图3 所示。 客户端  『浏览器 I 用户层 用户层,即客户端浏览器。用户通过客户端向  }用户管理 目录管理 资源管理 l 系统管理层 系统发出请求,系统把信息返回给客户端。 系统管理层,负责应用程序与底层数据操作连 接,把用户需要的数据结果传回客户端。主要提供 用户管理、目录管理、资源管理等服务。 Hadoop管理 【(MapReduce+HDFS) l 数据存储层 硬盘 数据存储层,Hadoop集群工作在这一层,由 HDFS和MapReduce构成,负责数据管理与分配任  l服务器 基础设施层 务,为系统提供分布式计算和存储。 基础设施层,即硬件基础设施,主要包括磁盘、服务器等。 2.2系统功能设计 图3 系统架构模型 本系统旨在为学校提供一个解决海量数据存储的管理平台。考虑到学校有多个职能部门,不同部 门使用的数据一般不同,为了更好地对数据进行分类管理,按照部门的职能进行了子用户的划分。系统 设计包括子用户管理、普通用户管理、管理员管理和平台管理四个功能模块,如图4所示。 校园云存储系统 子用户模块 普通用户模块 . 管理员模块 1 平台管理模块 _L- _L_ 上 上 上 』[ 上 _L _L_ _J- 用 创 查 文 文 文 修 子 普 查 管 服 故 报 户 建 看 件 件 件 改 用 通 理 务 障 警 登 目 目 上 下 删 密 户 用 看 管 户 目 员 器 管 管 录 录 录 传 载 除 码 管 登 管 理 理 录 录 理 理 理 图4校园云存储系统功能模块划分 子用户功能:包括创建、查看目录,上传、下载和删除自己的数据文件,修改密码等功能。 普通用户功能:包括创建、查看目录 卜传、下载和删除数据文件,创建和控制子用户等功能。只有 普通用户关联和激活了子用户,子用户才能可用。 管理员功能:包括浏览系统目录文件,对普通用户、子用户的创建、修改和删除等功能。只有关联和 激活用户后,用户才能可用。 平台管理功能:包括服务器信息管理,故障监控和报警管理。为服务器管理提供友好的uI接口,监 控系统运行中出现的故障,通过手机短信方式报警,及时发现故障、处理故障、记录故障,以便查询。 2.3系统具体实现 2.3.1 系统集群部署 系统采用Hadoop 0.21.0版本软件,7台Pc机操作系统为CentOS5,PC机的机器名和角色如下: Master 172.16.1.1 master; namenode Slave2-6 172.16.1.2-7 slave;datanode Master为集群主节点(namenode),其余机器为从节点(datanode)。 ・32・ 第4期 高新成,王莉利 基于Hadoop的校园云存储系统的研究 集群部署步骤: (1)集群配置SSH,实现机器间免密码登陆,操作命令: ¥ssh—keygen-t rsa ¥cp id_rsa.pub authorized—keys ¥ssh—copy—id-i¥HOME/.ssh/id—rsa.pub username@slave 在每台机器上生成ssh密钥,然后交换公钥,将namenode的公钥拷贝到每台datanode,这样互相访 问就不需要密码了。 (2)在每台机器上安装JDK1.6,配置Java环境。 (3)安装配置hadoop步骤: ①配置hadoop—env.sh文件,设置HADOOP—HOME与JAVA—HOME变量,具体如下: expoa HADOOP—HOME=/usr/local/hadoop/hadoop-0.21.0 expo ̄JAVA—HOME=/usr/java/jdk1.6.0_22/ ②分别配置mapred—site.xml、hdfs・site.xml、core—site.xml文件; ③配置slaves文件,加入所有datanode的IP地址slave; ④配置masters文件,加人namenode的IP地址master; ⑤将namenode配置好hadoop所在文件夹hadoop-0.21.0复制到每个datanode对应的目录下。 (4)启动hadoop服务。在namenode的hadoop-0.21.O/bin目录下,执行命令: ¥hadoop namenode—format//格式化目录节点 ¥start—al1.sh//启动hadoop进程 (5)安装eclipse,搭建集成开发环境。 2.3.2关键技术实现 系统在实现过程中,主要解决的问题包括数据上传、数据下载和数据删除三个方面,具体通过调用 Hadoop的API接口来实现,核心代码如下: 上传模块核心代码: private static void UploadModule(stirng Srccl,stirng Dstt1) { InputStream innl=new BufferedlnputStream(new FileInputStream(Srcc1)); Configuration connl:new Confiugration(); FileSystem fssl=FileSystem.get(URI.create(Dstt1),conn1); //设置输出流 OutputStream outtl=fss1.create(new Path(Dstt1)); IOUtils.copyBytes(innl,outtl,4096,true); } 下载模块核心代码: private static void DownModule(string Dsttl,stirng Srcc1) { Confiugration connl=new Configuration(); FileSystem fssl:FileSystem.get(URI.create(Dstt1),conn1); //获取文件输入流 FSDataInputStream inStreaml=fss1.open(new Path(Dstt1)); OutputStream outtl=new FileOutputStream(Srcc1); //设置缓冲区 byte[]ioBuffer=new byte[1024]; int readLen=inStream1.read(ioBuffer); outt1.close(); } ・ ・ 陕西理工学院学报(自然科学版) 删除模块核心代码: priv ̄e static void DeleteModule(string Dstt1) 第28卷 { Configuration connl:new Confiurgation(); FileSystem fssl=FileSystem.get(URI.create(Dstt1),conn1); //删除文件 fss1.deleteOnExit(new Path(Dstt1)); fss1.close(); } 2.4系统性能测试 系统测试时,将数据文件分成不同量级进行规则计算,并对单机和Hadoop集群的耗时进行统计对比。测试结果如 图5所示。 从图5中可以看出,系统处理的数据量为1 GB 时,集群耗用的时间大约是单机耗时的6倍,这是 因为集群的分布式架构在系统初始化和中间文件 的生成与传递上耗费了一些时间,数据量较小时, Hadoop集群没有发挥出分布式计算的优势。随着 输入文件的数据量增大,Hadoop集群的分布式并 行计算的优势逐渐发挥出来。当输入的数据量从 5 GB增加到20 GB,单机处理时间增加幅度明显增 大,反而集群系统处理时间增加幅度却不是很大。 当数据量接近20 GB时,集群系统耗时大约只有单 机耗时的1/4。 数据量(GB) 测试数据表明,随着数据量的增大,相比单机, 2.5系统应用优势 图5 集群性能测试结果 集群节约的时间量越来越大。体现了Hadoop集群在大数据量处理速度上的巨大优势。 本系统能够快速、高效地处理海量数据,满足在校园办公、教学和科研过程中的应用需求,具体优势 表现在以下几方面: . ①安全可靠性高。系统将文件以多副本的形式在不同服务器中保存,如果某个节点出现故障,系统 将自动把失败的计算任务重新进行部署,保障了数据的安全性和完整性。 ②数据处理速度快。系统把文件分发到不同的本地计算节点上进行数据处理,减少数据传输,同时 拥有MapReduce模型的计算优势,大大提高了数据处理速度。 ③运行成本较低。采用分布式计算架构,对服务器性能要求较低,大大降低了构建系统的成本。 ④扩展性好。系统采用并行扩容方式,可以根据需要随时扩展集群规模和存储容量。 3 结束语 通过对云计算的分布式、并行计算和海量数据存储等技术的研究,结合学校网络应用中海量数据存 储的实际需求,设计并实现了校园云存储系统。系统具有编程简化、安全可靠性高、开发成本低、易于实 现等优点。不仅满足校园中海量数据存储和管理应用,并对今后数字化校园建设中数据存储和服务器 使用规划有一定参考价值。 【 参考文献 ] [1] 朱珠.基于Hadoop的海量数据处理模型研究和应用[D].北京:北京邮电大学,2008:32-40. [2] 黄晓云.基于HDFS的云存储服务系统研究[D].大连:大连海事大学,2010:11-14. [3]Derek Tanke1.Scalability of Hadoop Distirbuted File System[R].Yahoo developer work,2010. .34. 第4期 高新成,王莉利 基于Hadoop的校园云存储系统的研究 [4]Tome White.Hadoop:The Definitive Guide[M].O REILLY PRESS,2009:9-13. [5]Dean J,Ghemawat S.MapReduce:Simpliifed data processing on large clusters[C]//Proc.Of the 6th Symp.on Operating System Design and Implementation.2004:137-250. 王凯,吴泉源,杨树强.一种多用户MapReduce集群的作业调度算法的设计与实现[J].计算机与现代化, 2010(20):23-28. [责任编辑:魏强] Research of cloud storage system for campus based on Hadoop GAO Xin.cheng ,WANG Li.1i (1.Modem Education Technique Center,Northeast Petroleum University,Daqing 163318,China; 2.School of computer&Information Technology,Northeast Petroleum University,Daqing 1633 18,China) Abstract: According to the mass data storage problem,traditional methods usually need more servers to increase computing speed and storage ability,while the hardware cost is very expensive and the storage effi— ciency is low.Through thorough study of MapReduce programming model and Hadoop framework,this paper presented a mass data storage model based on Hadoop framework,then a mass data storage system for campus network based on cloud computing was designed and implemented.This system can effectively solve issues in mass data storage management in teaching and study.This system is cheap,easily operated,fast and stable. Key words:Hadoop; MapReduce; cloud computing;distributed computing; storage model (上接第22页) [ 参考文献 ] l 程唯.高科技园规划与设计初探[D].武汉:华中科技大学,2004:2-5. 2 翁晓龙,江骅.软件园空间布局策略——以长春启明软件园概念性规划为例[J].理想空间,2011(3):70-73. 3 王振军.人与自然通过科技在信息时代的整合——上海浦东软件园设计[J].建筑学报,2000,18(21):37.39. 4 任尧.产业园的多元发展——武汉光谷软件园[J].时代建筑,2009(5):226.13 2. 5 陶亮.创新、生态、人文特质的软件园区——南京徐庄软件园景观规划设计[J].华中建筑,2007,2(7):145.149. 6 王大伟,许茗劫,吴文浩.功能特质解析与空间形体表达——中兴南昌软件产业园概念性规划方案[J].华中建筑, 2006,24(22):248—151. [责任编辑:谢平] The initial research of spatial layout in high technology park taking the conecpt plan of Shanghai Huahong innovation park as an example NIE Hao, NIU Wen-bo, OU—yang Dong (The IT Eleventh Design&Research Institute Scientific and Technological Engineering Corporation Limited. Chengdu 610021,China) Abstract:The spatila layout is an important part of the design of high technology park.the paper tires to research and discuss the spatial layout of high technology park.By taking the concept plan of Shanghai Hua. hong innovation park as an example,the high technology park is the result of the interaction among urban plan, architecture and society.During the design of the spatial layout,meeting the psychological,communicative and developing needs of the users and the companies must be paid attention to as the important need of the substantial space. Key words:high technology park; spatial layout;design ・35・ 

因篇幅问题不能全部显示,请点此查看更多更全内容