APP下载

基于Hadoop的云存储服务系统在高校中应用的探究

2013-04-29陈雅

都市家教·上半月 2013年6期
关键词:云存储

【摘 要】随着高校视频监控、无纸化办公、图书馆资料电子化的推广,高校中海量的数字资源呈现爆炸性增长,校园中数据存储逐渐成为高校亟需解决的一大难题。高校现行传统方法是购买更多存储硬件来解决,其存在成本高、效率低、共享性能差等缺点。通过Hadoop这个云开源项目,它由分布式文件系统HDFS与分布式处理框架MapReduce组成,能够有效解决校园教学、办公等过程中遇到的海量数据存储问题,具有成本低、速度快、易于编程扩展等特点。

【关键词】云存储;MapReduce;海量数据存储;HDFS

海量的高校信息资源需要整合,这是当前无可争议的事实,因为高校信息资源存在着资源分布不均衡、更新维护成本高、共享程度低和安全性差等一系列问题。整合资源首先要解决信息的合理存储这一问题,以便实现高效、安全的访问。与传统的存储方式相比,云存储很好地解决了这个问题。将基于Hadoop的云存储应用于整合高校信息资源,旨在通过构建基于Hadoop的云存储服务系统,解决海量数据存储问题,构建了一个低成本、高效率、高安全性的分布式信息资源整合解决方案,并给出了系统功能模块划分图。

一、云存储架构的技术基础

1.云存储

云存储是通过Web服务API经由(内部或外部)网络访问的存储。严格来讲,云存储是服务,不是存储,是使用一个由多个存储设备和服务器所组建而成的集合体。云存储访问API一般天生就是RESTful的。表述式状态转移(REST)是一种分布式超媒体系统的软件架构风格。RESTful意味着服务REST模式的一种架构,它由客户端和服务器组成,其中客户端向服务器发起请求,服务器处理请求并返回适当的响应。

2.分布式文件系统HDFS的体系结构

分布式文件系统(Hadoop Distributed File System),简称HDFS。具有高容错性,可以部署在低成本的硬件上。而且它可以提供高传输率来访问API的数据,特别适合那些有着超大规模数据集的API。HDFS放宽了对可移植操作系统接口的要求,使其可以流的形式访问文件系统中的数据。

HDFS系统采用主/从架构,是Hadoop集群的工作机制的中心,每个Hadoop集群都有以下四个守护进程:

①NameNode:管理命名空间、文件系统元数据和访问控制。

②JobTracker:将子任务委派给从节点(TaskTracker)。

③DataNode:通过本地连接的存储实现文件系统。每个节点都会在文件系统中存储这些块的一个部分(或完整)副本。

④TaskTracker:执行map和reduce子任务。

在每个集群中都只有一个NameNode和JobTracker。但是,可以有多个DataNode和TaskTracker。事实上,复制式文件系统就意味着你要有一个以上的DataNode节点。出于简单和性能方面的原因,大多数集群都在专用系统上运行NameNode和JobTracker。另外,为了实现数据的临近度,最有效的方式是让另外一台机器(称为“从节点”)来同时运行DataNode和TaskTracker这两个守护进程。除了上述四个组件外,还需要一个Secondary NameNode来辅助NameNode,可以防治永久丢失状态。

3.弹性MapReduce

MapReduce实现是一种可靠、复杂的并行处理框架,用一种高分布式风格进行,它们允许分布式处理的map函数和reduce函数。

①map:最初摄取数据的步骤,它会并行地对原始数据进行处理。主节点读取输入,将其分成小块,然后将这些小块分配给各处理节点。

②reduce:是一个聚合的步骤,它会将所有map函数的输出手机起来,将其组合在一起从而得出原而难题的结果。

弹性MapReduce是一个Web服务,你可以将MapReduce应用于巨大的数据集上,它比任何廉价服务器可以处理的数据规模要大得多,数小时内完成PB(100万GB)级的数据排序,工作人员可以使用它来处理海量的数据。它基于一个托管的Hadoop框架, Hadoop在开始时会将数据集分成一些可并行处理的较小的块(这就是map功能),然后再将这些中间数据合并到一个最终的解决方案中(即reduce功能)。弹性MapReduce支持一些类似SQL的工具,如Hive和Pig都是依靠Hadoop进行负载分布和横向伸缩的,以及许多编程语言,其中包括C++、Cascading、Java、Perl、PHP、Python、R和Ruby。

二、基于Hadoop的海量数据存储模型

Hadoop就是开源的MapReduce,MapReduce也是Hadoop所包括的核心功能,Hadoop这一MapReduce框架要求使用一个共享文件系统,Hadoop通常会运行在HDFS之上。

高校相对于云存储系统是一个用户,而高校内部有多个部门,相對于云存储系统的用户高校来说是一个子用户。云存储系统能够创建、管理、维护高校云存储用户;高校云用户能够创建、管理、维护各部门子用户。而子用户才是真正的终端信息存储用户,他们上传、下载、删除数据信息。由于我们的这个系统是基于HDFS的,而一个基本的HDFS由一个NameNode和n个DataNode组成,云存储系统是由多个地方的HDFS存储设备通过应用软件集合起来协同工作,完成外部访问请求。HDFS存储业务以云状分布在网络的各个部分,它具有容量大、性能高、可靠性好、协同优良的特点,正是这些特点,完成了高校信息资源高效访问与存储。

图一 基于Hadoop的海量数据存储模型

在模型设计上,从图一可以看出: “主”包括NameNode和JobTracker,每个“从”中包括DataNode和TaskTracker。HDFS的工作主要由NameNode和DataNode共同完成,MapReduce的工作主要由JobTracker和TaskTracker共同完成。

模型工作流程:服务控制集群SCC(service Controller Cluster)主要负责对用户应用请求进行接受,并根据用户的请求完成应答工作。存储节点集群SNC(Storage Node Cluster)主要负责处理数据资源的存取工作。JobTracker可以运行在集群系统中的每一台计算机上,主要完成管理和调度其它计算机上的TaskTracker。不同的是TaskTracker必须运行在数据存储节点的DataNode上,主要完成执行任务工作。JobTracker负责将每一个Map和Reduce任务分配给空闲的TaskTracker处理,完成对每个数据文件并行计算处理任务,同时对每个任务运行完成的情况进行监控。当其中一个TaskTracker重新执行完成这个任务。用户本身不直接通过Hadoop架构进行读写数据,这样可以避免大量的读写操作造成系统拥塞。当用户通过Hadoop架构把信息传给SCC后,将直接与存储节点进行交互,同时完成数据读取操作。

三、校园海量数据存储系统的设计

1.云存储系统架构设计

系统由四个部分组成,分别是用户层、系统管理层、数据存储层和基础设施层。

①用户层:即客户端浏览器。用户通过客户端向系统发出请求,系统把信息反馈给客户端。

②系统管理层:负责应用程序与底层数据操作连接,把用户需要的数据结果传回客户端。主要提供用户管理、目录管理、资源管理等服务。

③数据存储层:Hadoop集群工作在这一层,由MapReduce和HDFS构成,负责数据管理与分配任务,为系统提供分布式计算和存储。

④基础设施层:即硬件基础设施,主要包括磁盘、服务器等。

2.云存储系统功能设计

本系统目的是为学校提供一个解决高校中海量数据存储问题的管理平台考虑到高校中有多个部门,并且不同部门使用的数据内容一般不同,为了更好地对数据进行分类管理,按照不同部门的职能进行了相应子用户的划分系统

设计包括子用户管理、普通用户管理、管理员管理和平台管理四个功能模块。

子用户模块:包括创建目录、查看目录、文件上传、文件下载和文件删除、修改密码等

普通用户模块: 包括创建目录、查看目录、文件上传、文件下载和文件删除、修改密码外,还有子用户管理等功能,只有普通用户关联和激活了子用户,子用户才能可用

管理员模块:包括查看目录、对普通用户和子用户的管理等功能,只有关联和激活用户后,用户才可以使用。

平台管理功能:包括服务器信息管理、故障监控和报警管理,为服务器管理提供友好的用户界面接口,监控系统运行中出现的故障,通过设定好的方式报警,以便管理人员及时发现故障和排除故障,最后记录下故障以便日后查询。

3.云存储系统与传统存储比较

本系统是基于Hadoop构建起来的,能够迅速地、高效地处理海量数据存储这一难题,满足当今高校在办公、教学、科研等各方面的应用需求,具有以下优势。

(1)高可靠性。实现了对信息的分布式存储分布式处理,信息被切分为多个数据块分散地存储在云中的节点里,实现了多个副本的备份机制,因此可靠性要远高于传统的单机甚至是带有镜像服务的服务器的存储方式。

(2)访问的高效性。通过“心跳检测”,云中的控制节点能够不断地监视节点的状态,当发现存储节点失效时,控制节点能够将要完成的工作交给那些运行正常的节点来完成。同时,由于数据在云中是分布式的存储,能够有效地分担存储和访问的压力,这些都使得云存储具有访问高效性。

(3)存储成本低。原先的信息存储一般使用单一的硬件存储设备,信息量增加导致购买成本不断增加,使得资源存储的成本不断提高。而云中的存储设备都是廉价的商业机,并且可以多次重复利用,跟单一的大容量硬件存储设备相比较,容量更大,成本更低。

(4)便捷的管理。云存储能够在软件层做到自动容错而不依赖硬件本身的容错,而且将信息资源存储在云中,有利于对资源进行统一的管理,提高资源的管理效率。

四、结束语

基于Hadoop的云存储是一种动态可调整、基于互联网的存储解决方案,高校用户可以使用通用的协议和应用程序接口,经由网络访问存储目标,这种新技术对终端客户来说很有好处。云存储可以方便高校用户增加存储容量,并且不需要重新购买、安装和管理任何存储方面的基础设施,却能提供一个完善的備份、容错数据中心。云存储的成本低廉和简易操作性等优势对高校来说具有很强的吸引力,发展和应用前景。

参考文献:

[1]Jothy Rosenberg,Arthur Mateos.The Cloud at Your Service. Manning Publications Company, 2010

[2]John Rhoton,Risto Haukioja.Cloud Computing Architected:Solution Design Handbook. Recursive, Limited, 2011

[3]黄晓云.基于HDFS的云存储服务系统研究[D].大连:大连海事大学,2010:11-14

作者简介:

陈雅(1986~),女,广西南宁人,助教,广西交通职业技术学院,专职教师。

猜你喜欢

云存储
基于云存储的气象数字化图像档案存储研究
试论云存储与数字版权的冲突、法制与协同
云存储出版服务的版权侵权责任风险分析
云存储技术的起源与发展
基于云存储的数据库密文检索研究
浅析龙岩烟草业务数据与监控数据中的云存储与大数据