基于Hadoop的云计算平台设计与开发

时间:2022-10-17 09:16:05

基于Hadoop的云计算平台设计与开发

摘要:随着北部湾海洋生态资源的开发和利用,海量海洋科学数据飞速涌现出来,利用云计算平台合理管理和存储这些科学数据显得极为重要。本文提出了一种基于分布式计算技术进行管理和存储海量海洋科学数据方法,构建了海量海洋科学数据存储平台解决方案,采用Linux集群技术,设计开发一个基于Hadoop的云计算平台。

关键词:云计算;海洋科学数据;Hadoop;分布式计算

中图分类号:TP311.13文献标识码:A文章编号:1007-9599 (2011) 24-0000-02

Hadoop-based Cloud Computing Platform Design and Development

Tang Yun1,2

(1.Hubei University of Technology School of Computer Science,Wuhan430068,China;2. Lishui City Road Administration Detachment of the Highway Brigade,Lishui323000,China)

Abstract:With the development and utilization of marine ecological resources in the Beibu Gulf,the mass of marine scientific data rapidly emerged,the use of cloud computing platform for the rational management and storage of scientific data is extremely important.In this paper,manage and store large amounts of marine science data method based on distributed computing technology to build a massive marine science data storage platform solutions,using the Linux cluster technology,design and development based on a Hadoop cloud computing platform.

Keywords:Cloud computing;Marine science data;Hadoop;Distributed computing

传统的对大规模数据处理是使用分布式的高性能计算、网格计算等技术,需要耗费昂贵的计算资源,而且对于如何把大规模数据有效分割和计算任务的合理分配都需要繁琐的编程才能实现,而Hadoop分布式技术的发展正解决了以上的问题。Hadoop是Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,构建一个具有高可靠性和良好扩展性的并行分布式系统,HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)、MapReduc编程模型和HBase分布式数据库是其三大核心技术。

一、平台总体设计

(一)平台总体框架结构

结合海量数据异构性、分布性、多样性等特点,从系统编程实现角度考虑,本系统采用MVC三层架构设计,使结构更加清晰,系统易于扩展。系统整体架构如图1所示:

图1平台整体框架结构

显示层:为用户提供方便、易用和友好界面,普通用户可以通过页面浏览和查询海洋数据,高级用户可以利用系统提供的公共API接口,扩展系统。

业务处理层:并行处理海量海洋科学数据,并对整个平台系统配置管理。

数据资源层:是整个平台的基础,存储和管理海量海洋科学数据。

(二)平台总体功能设计

从系统功能角度考虑,可以将整个系统分二层:

第一层是数据访问层。对于海量数据存储,在存取数据时不会只局限对一种数据库的操作,本层需要对各种数据库提供的不同数据源进行屏蔽,提供数据库访问服务,这样系统才能够适应处理存储海量数据的要求,具有较好的可扩展性和完备性,方便管理和部署。

第二层是数据处理层。数据处理层作为整个系统的核心,同时也是本系统设计开发的重点内容。它采用分布式数据库技术、Linux集群技术等,提供了对海量数据的并行加载存储等主要功能。只有通过这一层对海量数据并行处理,才能把处理后的数据存储到本系统的分布式数据库中。同时提供了保证系统能够正常运行的管理支撑服务。

二、云计算平台开发

根据本平台功能设计,存储平台最主要的部分是数据处理层,而在实现数据处理层时,数据的并行加载存储模块成为了整个平台实现的核心,Hadoop分布式技术为该平台提供了数据存储和数据处理的模型及方法。使用Hadoop分布式文件系统存储海量源数据,通过MapReduce分布式计算模型来处理这些海量源数据,然后采用Hbase分布式数据库存储处理后的海量数据,以此来实现对海量海洋科学数据的存储管理。

(一)Hadoop分布式文件系统

HDFS是分布式计算的存储基础,它具有高容错性,可以部署在廉价的硬件设备上,用来存储海量数据集,并且提供了对数据读写的高吞吐率。HDFS为北部湾海洋科学数据提供了海量存储的基础,作为未处理的源数据集保存在Hadoop分布式文件系统中。

HDFS采用Master/Slave的体系结构,集群中有一个NameNode和很多个DataNode组成。NameNode是主控服务器,管理文件系统元数据。它执行文件系统的命名空间操作,比如打开、关闭、重命名文件或目录,还决定数据块到DataNode的映射。DataNode存储实际的数据,负责处理客户的读写请求,依照NameNode的命令,执行数据块的创建、复制、删除等工作。一个集群只有一个NameNode的设计大大简化了系统架构。体系结构如图2所示:

图2HDFS体系结构

NameNode使用事务日志(EditLog)来记录HDFS元数据的每次变化,使用映像文件(FsImage)存储文件系统的命名空间,包括数据块到文件的映射、文件的属性等等。事务日志和映像文件是HDFS的核心数据结构。NameNode启动时,它将从磁盘中读取映像文件和事务日志,把事务日志的事务都应用到内存中的映像文件上,然后将新的元数据刷新到本地磁盘新的映像文件中。

HDFS还设计有特殊的Secondary NameNode节点,辅助NameNode处理映像文件和事务日志。它会定期从NameNode上复制映像文件和事务日志到临时目录,合并生成新的映像文件后再重新上传到NameNode,NameNode更新映像文件并清理事务日志,使得事务日志的大小始终控制在某个特定的限度下。

(二)HBase分布式数据库

HBase是一个功能强大的分布式数据存储系统,基于列存储数据记录。数据行有三种基本类型定义:行关键字(Row Key),时间戳(Time Stamp)和列(Column)。每行包括一个可排序的行关键字,是数据行在表中的唯一标示。一个可选的时间戳,每次数据操作都有一个相关联的时间戳。某些列中可以有数据也可以没有。列定义为::(:)通过这两部分唯一指定一个数据的存储列。海量的海洋科学数据经过MapReduce计算以后就可以按其K值作为行关键字进行分布式存储,实现存储和管理海量数据功能。海洋有关科学数据的存储如表1所示:

表1数据存储示例

行关键字 时间戳 列 列

halobios T8 type:plant waterweeds

T5 type:anmial fish

T2 1

对以行名称为halobios,在T2时刻对列族ID的添加数据“1”,在T5时刻对列族type:plant添加数据“waterweeds”,在T8时刻对列族type:anmial添加数据“fish”。

HBase主要由主服务器、子表服务器和客户端三部分组成。主服务器做为HBase的中心,管理整个集群中的所有子表服务器,监控每个子表服务器的运行情况等。子表服务器接收来自主服务器的分配的子表、处理客户端的读写请求、缓冲区回收、压缩和分割子表等功能。客户端主要负责查找用户子表所在的子表服务器地址信息。

平台还可以整合现有的关系型数据库,通过去异构化处理共同提供海量数据存储服务。这里对关系型数据库开发由于篇幅原因不再赘述。

三、结束语

本文设计并开发了基于Hadoop的海量海洋科学数据存储平台。采用Linux集群技术、并行分布式数据库技术、以Hadoop分布式平台作为基础,主要以HDFS分布式文件系统、Map/Reduce并行计算模型以及Habase数据库技术作为处理海量数据方法,在大量的廉价普通计算机上搭建该平台,达到了高效存储和管理北部湾海量海洋科学数据的要求。目前该海量数据存储平台还在开发中,平台模块实现的结果表明,系统具有良好扩展性和易维护性,系统采用的技术路线和设计方法是有效和可行的。

参考文献:

[1]B.Hayes.Cloud Computing[J].Communications of the ACM,2008,51(7):9-11

[2]Hadoop.URL:http://hadoop.省略/

[3]陈康,郑纬民,云计算:系统实现与研究现状[J].软件学报,2009,20(5):1337-1348

上一篇:课程在线学习系统的实现 下一篇:浅谈多媒体课件的制作