论文部分内容阅读
摘要:随着北部湾海洋生态资源的开发和利用,海量海洋科学数据飞速涌现出来,利用云计算平台合理管理和存储这些科学数据显得极为重要。本文提出了一种基于分布式计算技术进行管理和存储海量海洋科学数据方法,构建了海量海洋科学数据存储平台解决方案,采用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)。每行包括一个可排序的行关键字,是数据行在表中的唯一标示。一个可选的时间戳,每次数据操作都有一个相关联的时间戳。某些列中可以有数据也可以没有。列定义为::
关键词:云计算;海洋科学数据;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)。每行包括一个可排序的行关键字,是数据行在表中的唯一标示。一个可选的时间戳,每次数据操作都有一个相关联的时间戳。某些列中可以有数据也可以没有。列定义为: